不能PUT ModelViewSet Django Rest Framework

时间:2014-08-15 16:32:17

标签: python django django-rest-framework

我不知道为什么我不能对我的ModelViewSet做PUT请求,如文档中所示,但PUT不起作用。有任何想法吗?我在下面包含了我的视图和序列化器。

class UserProfileViewSet(viewsets.ModelViewSet):
    queryset = UserProfile.objects.all()
    serializer_class = UserProfileSerializer
    filter_fields = ('user', 'id', 'account_type')

class UserProfileSerializer(serializers.ModelSerializer):
    class Meta:
        model = UserProfile`

REST_FRAMEWORK = {
    'DEFAULT_MODEL_SERIALIZER_CLASS':
        'rest_framework.serializers.ModelSerializer',
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.AllowAny',
    ),
    'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',)
}

3 个答案:

答案 0 :(得分:6)

您是否可能没有正确提出请求?您需要在网址中指定要更新的对象。

例如,url需要包含您要更新的对象的id: http://localhost:8000/api/user/16/

你得到"方法\" PUT \"不允许。"当你没有在请求中指定对象时。

答案 1 :(得分:3)

根据您在此处显示的内容,它应该正常运行。 PUT在列表视图中不起作用,仅在对象详细信息视图中。尝试创建一个对象并查看它的详细信息视图并检查是否可以看到PUT按钮

答案 2 :(得分:0)

在您的PUT请求中,您应该有一个名为' _method'的参数。和价值' PUT'。那就是它。