我正在查看一个名为crispy forms的包我想知道是否可以从模板中更改html名称?
IE
{{ form.username|changename }}
规则:
我不想更改原始表单或视图(根本),我只能访问模板。
我正在查看一个名为crispy forms的包我想知道是否可以从模板中更改html名称?
IE
{{ form.username|changename }}
规则:
我不想更改原始表单或视图(根本),我只能访问模板。
这可能是过度简化了它,但什么不仅仅是原始输出呢?
<label for="">what ever you want</label>
<input type="text" name="{{ form.username.html_name }}" id="{{ form.username.auto_id }}">
我仍然会自己在 form.py 中执行此操作,但如果您拥有的只是要使用的模板,那么这里不需要任何花哨的东西。
由于您要更改标签,我建议您使用模板,而不使用模板标签或过滤器:
<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
这只是向您展示模板过滤器如何工作的示例,然后您必须对其进行详细说明并更改名称、逻辑等