4 votes

Django 403 Jeton CSRF manquant ou incorrect

J'ai rencontré ce problème mais malheureusement je ne sais toujours pas comment le résoudre. Le formulaire se rend parfaitement, j'entre les informations et j'obtiens une erreur CSRF. La raison donnée est jeton manquant ou incorrect.

Vue:

def eventSell(request, id):
    c = {}
    c.update(csrf(request))
    event = SquidEvent.objects.get(pk = id)
    listing_form = ListingForm(request.POST)
    if request.user.is_authenticated():
        if request.method == 'POST':
            listing_form = ListingForm(request.POST)
            if listing_form.is_valid():
                cd = listing_form.cleaned_data
                user = request.user
                item = Object(price = cd['price'], seller = user)
                item.save()
                return HttpResponseRedirect(reverse('tixeng:index'), c)
            #print listing_form
        else:
            return render_to_response('tixeng/list.html', {'event' : event, 'form' : listing_form}, c)
    else:
        return HttpResponseRedirect(reverse('allauth.account.views.login'))

Voici mon modèle:

{% csrf_token %}
{{ form }}

Je pense avoir tout fait correctement, je ne suis pas sûr de ce qui cause l'erreur CSRF. De plus, au cas où cela soit pertinent, je suivais ce guide :

http://www.djangobook.com/en/2.0/chapter07.html

3voto

apardes Points 4032

Cette pile ici Django "La vue n'a pas renvoyé un objet HttpResponse." a pu m'aider à trier cela. Une fois que j'ai ajouté context_instance = RequestContext(request) à mon render_to_response, ça a fonctionné.

0voto

nish Points 688

context_instance est obsolète depuis la version 1.8. Vous pouvez utiliser:

return render(request, 'admin/match_main.html', RequestContext(request, locals()))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X