为了更好地控制我的输入字段,我尝试"复制"在模板中生成输入字段的函数
我使用的是ModelForm,我想改变
...
{{ form.name }}
...
类似
...
<input id="{{ form.name.auto_id }}" type="text" name="{{ form.name.name }}" maxlength="{{ form.name.**get_max_length** }}" value="{{ form.name.**get_value_or_initial_value** }}"/>
...
除了 maxlength 和 value 之外,其中大部分都已有效。
的maxlength
我读了
但我仍然没有做对......
值
这个问题(How can you manually render a form field with its initial value set?)的答案指向已经修复的票证。仍然会name.value
打印&#34;无&#34;如果没有价值。我是想手动捕捉value="None"
还是同时有更好的解决方案?
[编辑]
价值似乎就像那样
{{ form.name.value|default_if_none:"" }}
答案 0 :(得分:2)
您可以从窗口小部件中获取max_length属性。对于初始值,您只需要访问value属性,已经有一个初始值或提交值。传递给表单类的所有初始值都保存在form.initial中,但您可能不需要检查这些值:。
<input id="{{ form.name.auto_id }}" type="text" name="{{ form.name.name }}" maxlength="{{ form.name.field.widget.attrs.max_length }}" value="{% if form.name.value %}{{ form.name.value }}{% endif %}"/>