简体   繁体   English

CSRF验证失败。 请求中止。 我认为这更多的是令牌不匹配,因为存在{%csrf_token%}的实现

[英]CSRF verification failed. Request aborted. I think its more of a token mismatch because implementation of {% csrf_token %} is there

Reason given for failure: 失败原因:
CSRF token missing or incorrect. CSRF令牌丢失或不正确。

I have provided the '{% csrf_token %}' as concerned in this html page but I can't sort the error myself, it's probably out of my understanding about django. 我已经在此html页面中提供了“ {%csrf_token%}”,但我自己无法对错误进行排序,这可能是出于我对Django的理解。

eventcreationform.html eventcreationform.html

 <!DOCTYPE html> <html lang="en"> <head> {% csrf_token %} </head> <body> <div class="alert-success"> {% if messages %} {{ message }} {% endif %} </div> <div class='container'> <h1> {% if user.is_authenticated %} {{ user.username }} ! {% endif %} Please fill this form: </h1> <h3> <form method='POST' enctype="text/plain"> {% csrf_token %} {{ form }} <button type='submit' class='btn btn-default'>Submit</button> </form> </h3> </div> </body> </html> 

forms.py 表格

...

class EventForm(forms.ModelForm):
    event_name = forms.CharField(label='Name')
    event_date_time = forms.DateTimeField(label='Date and Time', 
    widget=forms.DateTimeInput)
    address = forms.CharField(label='Address')

class Meta:
    model = CreatedEvent
    fields = ('event_name', 'event_date_time', 'address')

...

urls.py urls.py

from django.conf.urls import url
from django.views.generic import TemplateView
from rest_framework.urlpatterns import format_suffix_patterns
from api import views
from django.conf import settings
from django.conf.urls.static import static


app_name = 'api'

urlpatterns = [
    ....
    url(r'^register/', views.Register.as_view(), name='register'),
    url(r'^eventform/', views.EventCreationForm.as_view(), name='eventform'),
    ....
]

urlpatterns = format_suffix_patterns(urlpatterns)
urlpatterns += static(settings.STATIC_URL,             
document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_ROOT, document_root=settings.MEDIA_ROOT)

views.py views.py

....

class EventCreationForm(View):
    template_eventcreationform = 'eventcreationform.html'
    form_class = EventForm

    def get(self, request):
        form = self.form_class(None)
        return render(request, self.template_eventcreationform, {'form':                     
form})

    def post(self, request):
        # data is here
        form = self.form_class(request.POST)
        if form.is_valid():
            event = form.save(commit=False)
            user = request.user.objects
            form.user = user.email
            event_name = form.cleaned_data.get('event_name')
            event_date_time = form.cleaned_data.get('event_date_time')
            event_address = form.cleaned_data.get('address')
            event.save()
            message = 'Event added'
            return render(request, 'base.html', {'message': message})
        else:
            message = 'Invalid form data, try again'
            form = self.form_class(None)
            return render(request, self.template_eventcreationform, 
{'message': message, 'form': form})
....

错误消失了,我认为问题出在“ enctype = text / plain-text”,我刚刚删除了它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 CSRF验证失败。 请求中止。 django python3 html中的{%csrf_token%} - CSRF verification failed. Request aborted. {% csrf_token %} in django python3 html 禁止(403)CSRF验证失败。 请求中止。 即使使用{%csrf_token%} - Forbidden (403) CSRF verification failed. Request aborted. Even using the {% csrf_token %} CSRF 验证失败。 请求中止。 我保留了 ta 标签 {% csrf_token %} 仍然得到这个 - CSRF verification failed. Request aborted. I kept the ta tag {% csrf_token %} still iam getting this CSRF 验证失败。 请求中止。 (Python 请求模块) - CSRF verification failed. Request aborted. (Python Request Module) CSRF验证失败。 请求中止。 Python 1.8 - CSRF verification failed. Request aborted. Python 1.8 CSRF验证失败。 请求中止。 的Django 1.7 - CSRF verification failed. Request aborted. Django 1.7 CSRF验证失败。 请求中止。 AJAX错误? - CSRF verification failed. Request aborted. AJAX mistake? CSRF 验证失败。 请求中止。 仅用于登录页面 - CSRF verification failed. Request aborted. only for login page CSRF验证失败。 请求中止。 // Dajaxice,Ajax - CSRF verification failed. Request aborted. // Dajaxice, Ajax CSRF 验证失败。 请求中止。 部署到云端后 - CSRF verification failed. Request aborted. After deployment to cloud
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM