Python Django模板:访问模板中的自定义表单字段属性
我只需要在Django表单字段中添加一个自定义的额外属性,即Python Django模板:访问模板中的自定义表单字段属性,python,python-3.x,django,Python,Python 3.x,Django,我只需要在Django表单字段中添加一个自定义的额外属性,即图标。 我将以我的自定义CharField为例 自定义_fields.py: class ICharField(forms.CharField): """ Django CharField with custom icon attr to use along with Bulma. """ icon = '' def __init__
图标
。
我将以我的自定义CharField
为例
自定义_fields.py:
class ICharField(forms.CharField):
"""
Django CharField with custom icon attr to use along with Bulma.
"""
icon = ''
def __init__(self, *, icon='', max_length=None, min_length=None, strip=True, empty_value='', **kwargs):
super().__init__(**kwargs)
self.icon = icon
forms.py:
from utils.forms import custom_fields
class SignUpForm(forms.Form):
company_name = custom_fields.ICharField(
icon='fas fa-envelope',
widget=forms.TextInput(attrs={
'class': 'input',
'placeholder': _('Name of your company'),
'label': _('Company'),
})
)
就是这样,但是当我在HTML中试图访问{{field.icon}时,我什么也得不到
.html文件:
{% extends 'template_composition/main.html' %}
{% load i18n %}
{% block content %}
{% for field in form %}
<div class="field">
<b>{{ field.label }}:</b>
<p class="control has-icons-left">
{{ field }}
<span class="icon is-small is-left">
<i class="{{ field.icon }}"></i>
</span>
</p>
</div>
{% endfor %}
{% endblock %}
{%extends'模板\u组合/main.html%}
{%load i18n%}
{%block content%}
{%形式的字段为%}
{{field.label}}:
{{field}}
{%endfor%}
{%endblock%}
很明显,我覆盖了\uuu init\uuu
错误,对吗?使用表单..字段。
语法
就你而言
{{ form.company_name.field.icon }}
或者使用循环
{% for field in form %}
{{ field.field.icon }}
{% endfor %}
{%用于表单%]中的字段
{{field.field.icon}
{%endfor%}