【发布时间】:2010-12-21 01:26:05
【问题描述】:
我正在遍历表单的字段,对于某些字段,我想要稍微不同的布局,需要更改 HTML。
要准确地做到这一点,我只需要知道小部件的类型。它的类名或类似名称。在标准 python 中,这很容易! field.field.widget.__class__.__name__
很遗憾,您无权访问模板中的下划线变量。 太棒了!
您可以测试field.field.widget.input_type,但这仅适用于文本/密码<input ../> 类型。我需要更多的分辨率。
对我来说,无论看起来多么困难,在模板级别执行此操作是最有意义的。我已经将处理字段 HTML 的部分代码外包给了一个单独的模板,该模板包含在字段循环中。这意味着它在 ModelForms 和标准 Forms 之间是一致的(如果我编写了一个中间 Form 类就不会这样)。
如果您能看到不需要我编辑 20 多个表单的通用方法,也请告诉我!
【问题讨论】:
-
相关错误报告或功能请求:code.djangoproject.com/ticket/13009
标签: django django-templates django-forms