【发布时间】:2015-01-09 18:55:24
【问题描述】:
我在 Django Rest Framework 中创建了端点,我希望只有经过身份验证的用户才能创建和更改数据。我使用令牌身份验证。
当我尝试更新 Testik 实例的 profile_picture 时(通过 PATCH 方法)提供正确的凭据。 (Authorization = Token xxxxxxxxxxxxx),成功了,profile_picture更新,返回状态码200。
但是,每当凭据错误或丢失时,它不会返回我在 django 终端输出中看到的错误 401(未授权):“PATCH /api/testik/1 HTTP/1.1”401 59”但我得到“状态 0 没有回应”
所以我有这个模型:
from django.db import models
# Create your models here.
class Testik(models.Model):
email = models.EmailField('email address', unique=True, db_index=True)
first_name = models.CharField(max_length=50, blank=True)
profile_picture = models.ImageField(upload_to='photos/testik',blank=True)
与关联的序列化程序:
from models import Testik
from rest_framework import serializers
class TestikSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Testik
fields = ('url', 'profile_picture','first_name')
还有这个 ViewSet:
from django.shortcuts import render
from serializers import TestikSerializer
from models import Testik
from rest_framework import mixins,permissions,viewsets,parsers
# Create your views here.
class TestikViewSet(mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.ListModelMixin,
mixins.CreateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
serializer_class = (TestikSerializer)
queryset = Testik.objects.filter()
parser_classes = (parsers.MultiPartParser,parsers.JSONParser)
有没有人知道我做错了什么或者我应该使用什么http请求(可能是特定的内容类型/我尝试了多部分或其他东西)?
【问题讨论】:
标签: python django http django-rest-framework