gpt4 book ai didi

python - Django - 403 禁止。 CSRF token 缺失或不正确

转载 作者:行者123 更新时间:2023-11-30 21:49:49 24 4
gpt4 key购买 nike

我尝试为我的模型添加 ModelForm,但每次 POST 尝试都以“403 Forbidden。CSRF 验证失败。请求中止。失败原因:CSRF token 丢失或不正确”结束。我没有 render_to_response() 方法,因此无法通过添加 RequestContext 来解决此问题。这是我的模型:

from django.db import models
from django.forms import ModelForm
.
.
.
class Text(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()

def __str__(self):
return self.title

class TextForm(ModelForm):
class Meta:
model = Text
fields = '__all__'

这是我的观点.py:

from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from .models import Text, TextForm
.
.
.
def text_new(request):
if request.method == 'POST':
form = TextForm(request.POST)
if form.is_valid():
return HttpResponse('Test')
else:
form = TextForm()

return render(request, 'projectname/new.html', {'form': form})

这是 new.html 的一部分:

<form method="post" action="">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>

还有一个问题:“text_name”方法名称可以吗?非常感谢!

最佳答案

导入 csrf_exempt 后将其添加到您的views.py中,如下所示:

from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from .models import Text, TextForm
from django.views.decorators.csrf import csrf_exempt,csrf_protect #Add this
.
.
.
@csrf_exempt #This skips csrf validation. Use csrf_protect to have validation
def text_new(request):
if request.method == 'POST':
form = TextForm(request.POST)
if form.is_valid():
return HttpResponse('Test')
else:
form = TextForm()

return render(request, 'projectname/new.html', {'form': form})

关于python - Django - 403 禁止。 CSRF token 缺失或不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31618410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com