我试图找出是否可以使用 Django Rest 框架中的通用 api 方法在同一 View 中发布和修补。我不认为有任何通用类允许完全创建和更新,任何人都可以告诉我下面的配置是否允许我在同一 View 中使用 post 和 patch 方法。
class QuestionList(generics.updateAPIView, generics.CreateAPIView):
queryset = Question.objects.all()
serializer_class = QuestionSerializer
最佳答案
我不确定这是否可能,但是,您可以创建两个这样的 View
class CreateSomeView(AuthenticatedView, CreateAPIView):
queryset = Some.objects.all()
serializer_class = SomeSerializer
def create(self, request):
serializer = self.serializer_class(data=data)
serializer.is_valid(raise_exception=True)
serializer.save()
class SomeView(AuthenticatedView, UpdateAPIView):
queryset = Some.objects.all()
serializer_class = SomeSerializer
def update(self, request, *args, **kwargs):
serializer = self.serializer_class(data=data)
serializer.is_valid(raise_exception=True)
serializer.save()
和两个类似的网址
path('some/', CreateSomeView.as_view(), name="create-some-details"),
path('some/<int:pk>/', SomeView.as_view(), name="some-details"),
现在,如果您想更新,您可以从前端发送请求;如果您想创建新的,您可以发送不带 ID 的请求。您不必创建两个序列化器。
关于python - 在 django RestFramework 中的同一 View 中使用通用 createapiview 和 updateapiview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55175166/