【问题标题】:By default, do DRF viewsets allow PUT, PARTIAL_UPDATE, DELETE, CREATE, LIST and RETRIEVE?默认情况下,DRF 视图集是否允许 PUT、PARTIAL_UPDATE、DELETE、CREATE、LIST 和 RETRIEVE?
【发布时间】:2017-07-24 23:43:20
【问题描述】:

假设我创建了这个视图集:

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    lookup_field = 'username'

还有这个路由器:

router.register(r'users', views.UserViewSet)

还有这个序列化器:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username', 'password', 'email')

是否有文档提及默认情况下是否允许user 接受PUTPARTIAL_UPDATEDELETELISTCREATE 请求?

【问题讨论】:

    标签: django-rest-framework django-rest-viewsets


    【解决方案1】:

    映射在router's documentation中解释

    【讨论】:

    • 谢谢。有没有办法让 Viewset 不接受 put 或 destroy 请求? (我目前的做法是创建权限NoPutNoDestroy,如果操作是putdestroy,则返回False
    • 是的,你需要继承 GenericViewSet 并添加你想要实现的 mixin (mixins.CreateModelMixin, mixins.RetrieveModelMixin, mixins.ListModelMixin)
    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 2016-02-28
    相关资源
    最近更新 更多