Django 3.0 ValueError

hello guys am having issues with django 3.0. am trying to create a user register page but i keep getting erros. these are my codes

users/views.py

from .form import UserRegisterForm
from django.shortcuts import render, redirect


# Create your views here.


def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('login')
        else:
            form = UserRegisterForm()
        return render(request, 'register.html', {'form': form})

form.py

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User


class UserRegisterForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']

register.html

{% extends 'website/base.html' %}


{% block body %}
    {% include 'website/nav_bar.html' %}

    <div>
        <form method="post">
            {% csrf_token %}
            <fieldset>
                <legend>join now</legend>
                {{ form.as_p }}
            </fieldset>
            <button type="submit">submit</button>
        </form>
    </div>
{% endblock body %}

ERROR MESSAGE

Upvotes: 2

Views: 76

Answers (1)

Alexandr Shurigin
Alexandr Shurigin

Reputation: 3981

Here

def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('login')
        else:
            form = UserRegisterForm()
        return render(request, 'register.html', {'form': form})

You forgot the case for normal GET request :)

something like that

def register(request):
    form = UserRegisterForm()

    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('login')
    return render(request, 'register.html', {'form': form})

More details on docs website https://docs.djangoproject.com/en/3.0/topics/forms/#the-view

Upvotes: 2

Related Questions