&引用;CSRF失败:CSRF令牌丢失或不正确。”;在Django Rest中:UpdateModelMixin
我正在使用Django rest框架中的UpdateModelMixin来更新测试模型中的条目&引用;CSRF失败:CSRF令牌丢失或不正确。”;在Django Rest中:UpdateModelMixin,django,django-rest-framework,Django,Django Rest Framework,我正在使用Django rest框架中的UpdateModelMixin来更新测试模型中的条目 from django.utils.decorators import method_decorator from django.views.decorators.cache import never_cache from rest_framework import mixins, filters, viewsets decorators = [never_cache] @method_decora
from django.utils.decorators import method_decorator
from django.views.decorators.cache import never_cache
from rest_framework import mixins, filters, viewsets
decorators = [never_cache]
@method_decorator(decorators, name='dispatch')
class TestViewSet(mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
viewsets.GenericViewSet):
queryset = Test.objects.all()
serializer_class = TestSerializer
filter_backends = [filters.DjangoFilterBackend]
filter_class = TestFilter
当我尝试从测试模型更新对象时,它给出了以下错误-
“详细信息”:“CSRF失败:CSRF令牌丢失或不正确。”
有人能帮我解决这个问题吗?这是一个老问题,但它值得一个答案,因为人们可能会来到这个页面寻找答案 如果存在csrf令牌问题,则表示您正在使用的页面未传递csrf令牌。由于您没有说明如何访问数据,我将假设它是JavaScript,因为这是最有可能的,所以我将给您一个如何修复它的示例,但过程只是从现有cookie中获取csrf令牌,然后将其作为cookie传递给API 下面是一个来自JavaScript的AJAX调用示例,它传递一个csrf令牌:
var data={ foo: "bar" };
$.ajax({
url: '/api/schedule/',
type: "PATCH",
data: JSON.stringify(data),
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRFToken', Cookies.get('csrftoken'))
},
contentType: "application/json",
});
编辑:
这使用了JavaScript cookie库。这是一个老问题,但它值得一个答案,因为人们可能会来到这个页面寻找答案 如果存在csrf令牌问题,则表示您正在使用的页面未传递csrf令牌。由于您没有说明如何访问数据,我将假设它是JavaScript,因为这是最有可能的,所以我将给您一个如何修复它的示例,但过程只是从现有cookie中获取csrf令牌,然后将其作为cookie传递给API 下面是一个来自JavaScript的AJAX调用示例,它传递一个csrf令牌:
var data={ foo: "bar" };
$.ajax({
url: '/api/schedule/',
type: "PATCH",
data: JSON.stringify(data),
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRFToken', Cookies.get('csrftoken'))
},
contentType: "application/json",
});
编辑:
这使用JavaScript cookie库。未定义cookie。我完全不懂html。我从哪里买饼干?对不起。我没有提到你必须为这段代码包含JavaScript cookie库,是这样做的。谢谢-Cookies没有定义。我完全不懂html。我从哪里买饼干?对不起。我没有提到你必须为这段代码包含JavaScript cookie库,是这样做的。谢谢-