please put « > » before the csrf tag

Le 27 août 2019 à 16:30 +0100, Kean <[email protected]>, a écrit :
> 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/EE7F02B6-E358-4378-AD6C-255123EEE33B%40gmail.com.

-- 
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/a01e8d1e-7c99-4c26-a569-4ccd08daa12f%40Spark.

Reply via email to