小编pdx*_*ile的帖子

重新排序modelform字段

我需要重新排序来自另一个基类的模型中的字段.无法找到解决方案.下面代码段中的"地址"始终显示在HTML模板的开头.如何使用渲染模板进一步向下移动?提前致谢.

class Address:
   street= ...
   city= ...

class Customer(Address):
   name = ...
   ...

class CustomerForm(ModelForm):
   def __init__(...)
        super(CustomerForm, self).__init__(*args, **kw)
        self.fields.keyOrder=[
        'name',
        'Address',  #<-- I want "Address" appear after the name in my template
                    #<-- This obviously is not the right code.
   class Meta:
      model = Customer
Run Code Online (Sandbox Code Playgroud)

-P

django django-templates django-models django-forms

6
推荐指数
3
解决办法
4302
查看次数

django 扩展了不同的基本模板

我知道我们可以在模板中使用“扩展变量”在两个不同的扩展模板之间切换。例如

  views:
     if something:
         base = 'base1.html'
     else:
         base = 'base2.html'
     return render_to_response ('template.html', {'base':base})

  template.html:
     {% extends base %}
Run Code Online (Sandbox Code Playgroud)

通常情况下效果很好。但是,我的问题是我正在使用 django-registration,我不必编写自己的视图来处理注册和登录过程。这也意味着我无法将变量传递给模板。虽然我的项目目录下确实有注册模板。(如login.html)

不幸的是,Django 无法在模板中执行此操作:

   {% if something %}
     {% extends 'base1.html' %}
   {% else %}
     {% extends 'base2.html' %}
   {% endif %}
Run Code Online (Sandbox Code Playgroud)

我知道“变量基数”可以传递给身份验证登录的唯一方法是编写我自己的视图,例如登录、注销等。这似乎不适合 DRY 模型,而且今后很容易出错。

还有其他方法可以实现此目的吗?或者有任何解决问题的建议吗?

谢谢。

-P

django django-templates django-authentication django-registration

3
推荐指数
1
解决办法
2728
查看次数