我正在致力于呈现表单模板。相关代码是这样的:
{% for field in filter.form %}
{% if field.is_hidden %}
{{ field }}
{% else %}
<div class="field">
{{ field }}
</div>
{% endif %}
{% endfor %}
到目前为止,一切都很好。如果是隐藏字段,则只需显示该字段即可。如果没有,请使用类 field
放置一个 div 包装器从我正在使用的框架中激活一些 CSS。
但是,我需要 div 包装器中的类为 picker
如果该字段是一个选择框。它需要是picker-multiple
如果它是一个多选框。等等。
这可以在模板 View 中执行吗?我们正在使用一个框架(这就是为什么我不想只使用 CSS 以不同的方式定位表单字段),但我们希望核心代码能够在没有框架的情况下工作(我认为,这就是为什么我们不会不想在单独的 Python 文件中执行此类操作)。
至于我所尝试的,我注意到{{ field.field.widget }}
呈现类似 <django.forms.widgets.Select object at 0x10d822a50>
的内容。我本来期望 {{ field.field.widget.Select }}
渲染某些东西(我想到了True
),但它什么也没做。
最佳答案
django-widget-tweaks包括为您提供的 field_type 和 widget_type 模板过滤器。
关于django - 如何检测 Django 模板中表单元素的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21557788/