在DRF modelViewSet上执行创建和更新的自定义函数


问题内容

嗨,我想在其中创建一个自定义方法,modelviewset该方法需要在单个发布请求中执行保存和更新逻辑。

这是我的 breeding.viewsets.py

class BreedingViewSet(viewsets.ModelViewSet):
    queryset = Breeding.objects.all()
    serializer_class = BreedingSerializer

由于上述方法具有较高的抽象级别,并且实际上是提供或执行自动CRUD功能。

现在的问题是我没有对多个查询的任何控制,例如保存对象并在单个发布请求中更新另一个对象。

例如

def save_and_update(self, request):
     // do save an object here.
     // do update an object here.

我们如何实现如此强大的功能?我错过了什么吗?我找到了此文档,但我不知道如何执行给定的说明。

更新

这就是我在寻找的内容如何使用Django Rest
Framework创建多个模型实例?

但是答案只能save是同一模型的单个发布请求中的多个实例。但我也希望我们可以在单个函数中对不同的模型执行查询。


问题答案:

好了,从注释中看,您似乎想在创建繁殖模型时更新一些不相关的模型。这应该很容易。

类BreedingViewSet(viewsets.ModelViewSet):
    queryset = Breeding.objects.all()
    serializer_class = BreedingSerializer

    def创建(自己,请求):
        #在这里做你的事
        返回super()。create(请求)