Thank you, this resolved issue.

best,

K
On 27 Aug 2019, at 17:30, Ajeet Kumar Gupt <[email protected]> wrote:

> Hi Kean,
> 
> First need to close the proper tags
> 
> I seen your code form tag is not closed properly. Once first form tag closed 
> than write the code csrf token
> 
> On Tue, 27 Aug, 2019, 7:30 PM Kean, <[email protected]> wrote:
> Hi Ajeet, thanks for code, 
> however after i press submit i get the
> 
> Forbidden (403)
> CSRF verification failed. Request aborted.
> Help
> Reason given for failure:
>     CSRF token missing or incorrect.
>     
> In general, this can occur when there is a genuine Cross Site Request 
> Forgery, or when Django's CSRF mechanism has not been used correctly. For 
> POST forms, you need to ensure:
> Your browser is accepting cookies.
> The view function passes a request to the template's render method.
> In the template, there is a {% csrf_token %} template tag inside each POST 
> form that targets an internal URL.
> If you are not using CsrfViewMiddleware, then you must use csrf_protect on 
> any views that use the csrf_token template tag, as well as those that accept 
> the POST data.
> The form has a valid CSRF token. After logging in in another browser tab or 
> hitting the back button after a login, you may need to reload the page with 
> the form, because the token is rotated after a login.
> You're seeing the help section of this page because you have DEBUG = True in 
> your Django settings file. Change that to False, and only the initial error 
> message will be displayed.
> You can customize this page using the CSRF_FAILURE_VIEW setting.
> 
> my template is referencing csrf_token
> 
> template.html
> 
> <!DOCTYPE html>
> <html>
> <head>
>       <title>Customer</title>
> </head>
> <body>
>       <h8> "Customer register" </h8>
>       <div>
>               <div class = "container" >
>               <form method="POST"
>                       {% csrf_token %}
>                       {{ form.as_p }}
>                       <input type="submit" />
>               </form>
>               </div>
>       </div>  
> </body>
> </html>
> 
> 
> Am i doing something wrong?
> 
> Best,
> K
> 
> On 25 Aug 2019, at 08:57, Ajeet Kumar Gupt <[email protected]> wrote:
> 
>> 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.
>> 
>> 
>> -- 
>> 
>> 
>> 
>> 
>> 
>> 
>> 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/A8587CDE-5D6D-4FAB-860A-E255BF010875%40gmail.com.

Reply via email to