我正在遍历表单的字段,对于某些字段,我想要稍微不同的布局,需要更改HTML.
要准确地做到这一点,我只需要知道小部件类型.它的类名或类似的东西.在标准的python中,这很容易!field.field.widget.__class__.__name__
不幸的是,您不允许访问模板中的下划线变量.大!
您可以测试,field.field.widget.input_type但这仅适用于文本/密码<input ../>类型.我需要更多的解决方案.
对我而言,无论它看起来多么困难,最适合在模板级别执行此操作.我已经将处理字段HTML的代码外包给了一个单独的模板,该模板包含在字段循环中.这意味着它在ModelForms和标准Forms 之间是一致的(如果我写了一个中间的Form类,这是不正确的).
如果您能看到一种不需要我编辑20多种形式的通用方法,请告诉我!
如果我有一个需要类似布局但需要根据对象类设置一些属性的对象列表,我怎样才能获取类名,而类和其他xx值在模板中不可用.
{% for obj in objects %}
<div class={{obj.__class__.__name__}}
..
</div>
{% endfor }}
可能有一种替代方法,我在这里失踪..