Peter Pik
Peter Pik

Reputation: 11193

firstname and lastname not showing in django form

i'm trying to create a registration form with following information (firstname, lastname, email, password, password_confirm), however i do not get firstname and lastname. so far i only get username, password and password confirmation. what am i doing wrong in order to add the missing fields?

forms.py

class SignUpForm(UserCreationForm):
    first_name = forms.CharField(max_length=30, required=False, label='Fornavn', help_text='Optional.')
    last_name = forms.CharField(max_length=30, required=False, label='Efternavn', help_text='Optional.')
    email = forms.EmailField(max_length=254, label='Email', help_text='Required. Inform a valid email address.')

class Meta:
    model = User
    fields = ('username', 'first_name', 'last_name', 'email')

register.html

{% for field in form %}
<div class="form-group">
     <label>{{ field.label }}</label>
     {% render_field field class="form-control" placeholder=field.help_text %}
</div>
{% endfor %}

views.py

def register(request):
    if request.user.is_authenticated():
        return redirect('/account/')
    context = {}
    if request.method == "POST":
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            login(request, user)
            return redirect('/account/')
    else:
        form = UserCreationForm()
    return render(request, 'register.html', {'form': form})

urls

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^register/$', views.register, name='register')

]

Upvotes: 2

Views: 1462

Answers (1)

Moses Koledoye
Moses Koledoye

Reputation: 78556

You're passing UserCreationForm instead of SignUpForm for your GET (and other) requests:

if request.method == "POST":
    ...
else:
    form = SignUpForm()

Upvotes: 5

Related Questions