更改模板中的表单html名称

时间:2013-08-16 15:02:17

标签: python django

我正在看一个名为crispy forms的软件包我想知道是否可以在模板中更改html名称?

{{ form.username|changename }}

规则:

我不想更改原始表单或视图(根本没有),我只能访问模板。

2 个答案:

答案 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

这只是一个示例,向您展示模板过滤器的工作原理,然后您需要详细说明并更改名称,逻辑等等。