[英]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.