Hi,
Please use the below code.
views.py
__________________
def user_register(request):
# if this is a POST request we need to process the form data
template = 'mymodule/register.html'
# template = 'index.html'
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = RegisterForm(request.POST)
# check whether it's valid:
if form.is_valid():
if
User.objects.filter(username=form.cleaned_data['username']).exists():
return render(request, template, {
'form': form,
'error_message': 'Username already exists.'
})
elif User.objects.filter(email=form.cleaned_data['email']).exists():
return render(request, template, {
'form': form,
'error_message': 'Email already exists.'
})
elif form.cleaned_data['password'] !=
form.cleaned_data['password_repeat']:
return render(request, template, {
'form': form,
'error_message': 'Passwords do not match.'
})
else:
# Create the user:
user = User.objects.create_user(
form.cleaned_data['username'],
form.cleaned_data['email'],
form.cleaned_data['password']
)
user.first_name = form.cleaned_data['first_name']
user.last_name = form.cleaned_data['last_name']
user.phone_number = form.cleaned_data['phone_number']
user.save()
return redirect('/login/')
# Login the user
#login(request, user)
#def user_login(request):
# redirect to accounts page:
#return render(request, '/login.html')
# return HttpResponseRedirect(return, '/login.html')
# No post data availabe, let's just show the page.
else:
form = RegisterForm()
return render(request, template, {'form': form})
On Sat, Aug 24, 2019 at 8:34 PM Kean <[email protected]> wrote:
> Hi,
>
> New to Django.
> I've created a user registration form, the issue is it does not run
> validations or report errors with the data entered. It simply routes to the
> redirect url.
> Please can I ensure the user sees the correct error in a post case scenari
> for both a django form, and customsied django form.
>
> forms.py
>
> class UserRegisterForm(UserCreationForm):
> email = forms.EmailField()
>
> class Meta:
> model = User
> fields = 'username', 'email', 'password1', 'password2'
>
> Views.py
>
> def register(request):
> if request.method == 'POST':
> form = UserRegisterForm(request.POST)
> if form.is_valid():
> form.save()
> username = form.cleaned_data.get('username')
> messages.success(request, f'Account created for {username}')
> return HttpResponseRedirect('cprofile')
> else:
> form = UserRegisterForm()
> context = {'form': form}
> return render(request, "register.html", context,)
>
> template.html
>
> <head>
> <title>Registration</title>
> </head>
> <body>
> <br>
> <div class = "container">
> <form method = "POST">
> {% csrf_token %}
> <fieldset class="form">
> <legend class="border-bottom mb-2">Register</legend>
> {{ form|crispy }}
> {% if messages %}
> {% for messages in messages %}
> <div class="alert alert{{ message.tag }}">
> {{ messages }}
> </div>
> {% endfor %}
> {% endif %}
> </fieldset>
> <br>
> <div class = "form">
> <button class ="btn btn-outline-info" type="submit">Register</button>
>
> Any help would be much appreciated
>
> Best,
>
> K
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/5a003506-de8d-4587-863d-3fc26e4c45c1%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/5a003506-de8d-4587-863d-3fc26e4c45c1%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
--
*Thanks & Regards*
Ajeet Kumar Gupt
+91-9311232332
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/CA%2BTqRssQ_O3CRknqdev24W7PHWWH0Hd19%3DH-gH-UmSdrmiMyJA%40mail.gmail.com.