如何从Meta类Django ModelForm中的标签获取标签名称

时间:2019-06-24 02:01:05

标签: django django-forms

在Meta类中,我为字段定义标签名称。我想获取标签名称,我尝试过但没有任何操作。

forms.py

class UserForm(ModelForm):
class Meta:
    model = User
    fields = ['first_name']
    widgets = {
        'first_name': forms.TextInput(attrs={'type': 'text', 'placeholder': 'First Name', 'class': 'form-control input-md'})
    }
    labels = {
        'first_name': "First Name"
    }

views.py

def profile(request):
user = UserForm()
user_info = ProfileForm()
return render(request, 'pages/demo.html', {'user': user})

demo.html

<label style="margin-left: -48px; margin-right: 48px;" class="col-md-4 control-label">{{ ??? }}</label>

1 个答案:

答案 0 :(得分:1)

您只需通过{{ field.label_tag }}即可获取。例如,如果要遍历表单字段:

{% for field in form %}
    <div class="fieldWrapper">
        {{ field.errors }}
        {{ field.label_tag }} {{ field }}
        {% if field.help_text %}
        <p class="help">{{ field.help_text|safe }}</p>
        {% endif %}
    </div>
{% endfor %}

或者,如果您要手动呈现字段,则可以这样做:

<label style="margin-left: -48px; margin-right: 48px;" class="col-md-4 control-label">{{ user.first_name.label }}</label>

仅供参考,我强烈建议您将用户的上下文变量重命名为其他任何名称(例如,可以使用user_form)。因为它将与django's auth user模板上下文冲突。