我想有一个Django表单域渲染为:
<input type="text" name="username" required>
但是当我尝试username.widget.attrs['required'] = ''
时,我得到了类似这样的结果:
<input type="text" name="username" required="">
是否有一种方法可以在生成的HTML表单中显示独立的HTML5属性(如required
)?
我在Python 2.6上使用Django 1.6,这是值得的。
4条答案
按热度按时间xiozqbni1#
@mariodev是正确的,如果你想要一个更优雅的方法,参考https://stackoverflow.com/a/37738828/2812260(相关部分复制如下):
如果你真的想编写优雅的DRY代码,你应该创建一个基类,它可以动态地查找所有的必填字段,并修改它们的widget required属性(你可以随意命名它,但是“BaseForm”似乎很合适):
然后让所有Form对象从它派生:
kx1ctssn2#
您需要以有效格式定义
required
属性。查看此处了解更多详情:https://stackoverflow.com/a/3012975/1566605
6rqinv9w3#
如果你想要一个声明性的选项在每一个表单而不是每一个模型的基础上,这是我的解决方案:
vxbzzdmp4#
只需像这样为widget设置required属性:
self.字段['字段名称'].widget =表单.文本输入(属性={'必需':'必需'})