How do I remove Label text in Django generated form?

最后都变了- 提交于 2020-07-18 04:16:23

问题


I have a form that is displaying well only for the label text that I don't want and I have tried all I could to let it off my form but it won't just go...

forms.py:

class sign_up_form(forms.ModelForm):
    class Meta:
        model = Users
        fields =['email']
        widgets = {
            'email': forms.EmailInput(attrs={
                'id': 'email',
                'class': 'form-control input-lg emailAddress',
                'name': 'email',
                'placeholder': 'Enter a valid email'})}

I have tried: views.py:

from django.shortcuts import render
from mysite.forms import sign_up_form

def register(request):
    sign_up = sign_up_form(auto_id=False)
    context = {'sign_up_form': sign_up}
    return render(request, 'mysite/register.html', context)

I need my widgets as defined above.


回答1:


In ModelForms there will be default labels so you have to over-ride where you don't need labels

you can define it like this

class sign_up_form(forms.ModelForm):
    email = forms.CharField(widget=forms.Textarea, label='')
    class Meta:
        model = Users
        fields =['email']

This method will not include labels for your form, other method depends on rendering in template. You can always avoid labels from form <label>MY LABEL</label> instead of {{ form.field.label }}




回答2:


just set a class for the field in the widgets and in your style add:

.ClassName label{
    display: none;
}



回答3:


In __init__ method set your field label as empty.This will remove label text.

def __init__(self, *args, **kwargs):
        super(sign_up_form, self).__init__(*args, **kwargs)
        self.fields['email'].label = ""


来源:https://stackoverflow.com/questions/25839043/how-do-i-remove-label-text-in-django-generated-form

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!