【发布时间】:2016-08-10 22:01:06
【问题描述】:
我想在使用 Crispy Forms 时做一些简单的事情;我只想在用户属于员工组时才显示字段集。这可以在这样的标准模板中轻松解决:
{% if user.is_staff %}
show extra stuff
{% endif %}
也许我错过了手册中的某些内容,但我不明白如何将“{% if user.is_staff %}”之类的模板标签注入到清晰的表单布局中。如果我可以使用虚构的“Djangotag”来解决我的问题,那将是我的用例的理想选择:
self.helper.layout = Layout(
Fieldset(
'Section One',
'name',
'description',
),
Djangotag('{% if user.is_staff %}'),
Fieldset(
'Conditional Fieldset',
'field1',
'field2',
),
Djangotag('{% endif %}'),
Fieldset(
'More Details',
'detail1',
'detail2',
),
)
有没有一种简单的方法可以用脆的形式做到这一点?
注意:我已经实现了self.user = kwargs.pop('user') 方法,它不是很优雅,我还在寻找更好的东西。
我还尝试为 if 语句创建简单的模板,并尝试了 HTML("{% include 'helpers/is_staff.html' %}"), 但渲染过程失败。
【问题讨论】:
标签: python django django-forms django-crispy-forms