我有一个项目需要执行相同模型的不同创建过程。
我们可以通过创建多个ModelViewSet
来实现这一目标。
class AnimalViewSet(viewsets.ModelViewSet):
queryset = Animal.objects.all()
serializer_class = AnimalSerializer
def create(self, request):
# just simply create the object...
pass
端点为POST /api/animal/
class CalvingViewSet(viewsets.ModelViewSet):
# This is called when an animal has successfully delivered its new born..
queryset = Animal.objects.all()
serializer_class = AnimalSerializer
def create(self, request):
# define parent animals pregnancy as success
# and more..
# finally create the object..
pass
端点为POST /api/calving/
但我不愿意这样做。
现在可以在一个create(self, request)
?
ModelViewSet
class AnimalViewSet(viewsets.ModelViewSet):
queryset = Animal.objects.all()
serializer_class = AnimalSerializer
def create(self, request):
# just simply create the object...
pass
def calving(self, request):
# create the object..
# define parent animals pregnancy as success
# and more..
pass
通过这种方式,我可以避免为同一个模型创建另一个模型视图。
create(self, request):
的端点为POST /api/animal/
。
问题是如果不使用calving(self, request):
@list_route(methods=['post])
的端点是什么
@list_route(methods=['post'])
可能有所帮助,但我想确保有另一种正确的方法来做到这一点。