Python – How to remove Label text in Django generated form

djangodjango-formsdjango-templatespython

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.

Best Answer

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 }}

Related Topic