我需要重新排序来自另一个基类的模型中的字段.无法找到解决方案.下面代码段中的"地址"始终显示在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
我知道我们可以在模板中使用“扩展变量”在两个不同的扩展模板之间切换。例如
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