Django Rest:如何使用{pk}禁用POST api
如何使用序列化程序从api中删除Django Rest:如何使用{pk}禁用POST api,django,django-rest-framework,swagger-ui,Django,Django Rest Framework,Swagger Ui,如何使用序列化程序从api中删除[POST]/api/contact/{pk}/?(去掉第二个API) 我的序列化程序定义如下: class ContactSerializer(serializers.ModelSerializer): class Meta: model = Contact fields = ('chatuser', 'contact', 'is_blocked') class ContactViewSet(mixins.Create
[POST]/api/contact/{pk}/
?(去掉第二个API)
我的序列化程序定义如下:
class ContactSerializer(serializers.ModelSerializer):
class Meta:
model = Contact
fields = ('chatuser', 'contact', 'is_blocked')
class ContactViewSet(mixins.CreateModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
queryset = Contact.objects.all()
serializer_class = ContactSerializer
我的视图集如下所示:
class ContactSerializer(serializers.ModelSerializer):
class Meta:
model = Contact
fields = ('chatuser', 'contact', 'is_blocked')
class ContactViewSet(mixins.CreateModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
queryset = Contact.objects.all()
serializer_class = ContactSerializer
您是否可以使用ReadOnlyModelViewset?从文档中: ReadOnlyModelViewSet类也继承自GenericAPIView。与ModelViewSet一样,它还包括各种操作的实现,但与ModelViewSet不同,它只提供“只读”操作、.list()和.retrieve() 不过这有点奇怪,因为GenericViewSet不应该给您任何开箱即用的操作,您应该只获得ModelViewSet的帖子 GenericViewSet类继承自GenericAPIView,并提供默认的get_对象、get_queryset方法和其他通用视图基本行为集,但默认情况下不包括任何操作 这可能意味着其中一个mixin正在为您提供额外的操作,请参阅: 为了使用GenericViewSet类,您将重写该类,并在所需的mixin类中进行mixin,或者显式定义操作实现
如果您可以检查这些mixin的定义,或者将它们发布到这里,也可以尝试在没有任何mixin的情况下使用ReadOnlyModelViewSet,看看您的情况如何 您是否可以使用ReadOnlyModelViewset?从文档中: ReadOnlyModelViewSet类也继承自GenericAPIView。与ModelViewSet一样,它还包括各种操作的实现,但与ModelViewSet不同,它只提供“只读”操作、.list()和.retrieve() 不过这有点奇怪,因为GenericViewSet不应该给您任何开箱即用的操作,您应该只获得ModelViewSet的帖子 GenericViewSet类继承自GenericAPIView,并提供默认的get_对象、get_queryset方法和其他通用视图基本行为集,但默认情况下不包括任何操作 这可能意味着其中一个mixin正在为您提供额外的操作,请参阅: 为了使用GenericViewSet类,您将重写该类,并在所需的mixin类中进行mixin,或者显式定义操作实现
如果您可以检查这些mixin的定义,或者将它们发布到这里,也可以尝试在没有任何mixin的情况下使用ReadOnlyModelViewSet,看看您的情况如何 添加与该视图相关的url配置。我认为您的一些配置是错误的。post
/api/contact/{pk}
不应该有端点。最有可能的是,放置或修补这些URL是从路由器生成的,我没有设置它。很抱歉,回复太晚了。。。我倾向于转储这个框架,然后自己做……添加相对于该视图的url配置。我认为您的一些配置是错误的。post/api/contact/{pk}
不应该有端点。最有可能的是,放置或修补这些URL是从路由器生成的,我没有设置它。很抱歉,回复太晚了。。。我倾向于转储这个框架,然后自己做……对,使用一个Mixin,它派生vom ModelViewSet,使得ReadOnlyModelViewSet
什么都不做。谢谢你指出这一点!对,使用派生vom模型视图集的Mixin使ReadOnlyModelViewSet
不做任何事情。谢谢你指出这一点!