Django Rest API 将 delete/get/update/get 方法合并为两个 class
Django Rest API merging delete/get/update/get methond in two class
首先你在view.py:
中看到我的4个方法class
class ContactList(ListAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
# This is delete method
class ContactDelete(DestroyAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
lookup_field = 'pk'
#below is post method to create new contact
class ContactCreate(CreateAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
#below is put and patch method to update contact
class ContactUpdate(UpdateAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
lookup_field = 'pk'
我想要 ContactList
和 ContactCreate
应该在一个 class
和ContactDelete
和ContactUpdate
应该在一个class
我不知道如何合并它,谁能告诉我该怎么做?
注意:我不想APIViewSet
DRF 已经 类 为此目的。你可以查看它们 here and here
from rest_framework.generics import ListCreateAPIView, RetrieveDestroyAPIView
class ContactCreateListAPIView(ListCreateAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
class ContactRetrieveDeleteAPIView(RetrieveDestroyAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
lookup_field = 'pk'
希望对您有所帮助
<b># This is create and list method</b>
class ContactListCreate(<b>ListAPIView, CreateAPIView</b>):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
<b># This is delete and update method</b>
class ContactDeleteUpdate(<b>DestroyAPIView, UpdateAPIView</b>):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
您可以从视图中删除 lookup_field = 'pk'
,因为 DRF 将 pk
作为默认值。
首先你在view.py:
class ContactList(ListAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
# This is delete method
class ContactDelete(DestroyAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
lookup_field = 'pk'
#below is post method to create new contact
class ContactCreate(CreateAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
#below is put and patch method to update contact
class ContactUpdate(UpdateAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
lookup_field = 'pk'
我想要 ContactList
和 ContactCreate
应该在一个 class
和ContactDelete
和ContactUpdate
应该在一个class
我不知道如何合并它,谁能告诉我该怎么做?
注意:我不想APIViewSet
DRF 已经 类 为此目的。你可以查看它们 here and here
from rest_framework.generics import ListCreateAPIView, RetrieveDestroyAPIView
class ContactCreateListAPIView(ListCreateAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
class ContactRetrieveDeleteAPIView(RetrieveDestroyAPIView):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
lookup_field = 'pk'
希望对您有所帮助
<b># This is create and list method</b>
class ContactListCreate(<b>ListAPIView, CreateAPIView</b>):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
<b># This is delete and update method</b>
class ContactDeleteUpdate(<b>DestroyAPIView, UpdateAPIView</b>):
queryset = Contact.objects.all()
serializer_class = ContactSerializers
您可以从视图中删除 lookup_field = 'pk'
,因为 DRF 将 pk
作为默认值。