我正在看一个名为crispy forms的软件包我想知道是否可以在模板中更改html名称?
即
{{ form.username|changename }}
规则:
我不想更改原始表单或视图(根本没有),我只能访问模板。
答案 0 :(得分:1)
这可能过度简化它,但不仅仅是原始输出呢?
<label for="">what ever you want</label>
<input type="text" name="{{ form.username.html_name }}" id="{{ form.username.auto_id }}">
我仍然会在form.py中自己做这个,但是如果你拥有的是可以使用的模板,那么这里不需要任何花哨的东西。
答案 1 :(得分:1)
由于您正在更改标签,我建议您使用template-ish,而不使用模板标签或过滤器:
<label for="id_username">Your label name here:</label>
{{ form.username }}
或者,如果你无法抗拒,你必须对你的field.label
财产应用过滤器:
{{ form.username.label|my_custom_filter }}
一个简单的过滤器可能是:
@register.filter(name='my_custom_filter')
def my_custom_filter(value):
# here value is the value of your label
# process it as you please then return the new value
if value == 'changeme':
return 'changed label'
return value
这只是一个示例,向您展示模板过滤器的工作原理,然后您需要详细说明并更改名称,逻辑等等。