Django 如何在REST框架中的perform_create中添加两个不同的模型?

Django 如何在REST框架中的perform_create中添加两个不同的模型?,django,django-rest-framework,Django,Django Rest Framework,我有两个模型,我想一起创建,只有一个请求。这可以在一次执行或创建中完成,还是有办法 型号: class Foo(models.Model): name = models.CharField() class Bar(models.Model): foo = models.ForeignKey('foo) 观点: class FooViewSet( mixins.ListModelMixin, mixins.RetrieveModelMixin, mixin

我有两个模型,我想一起创建,只有一个请求。这可以在一次执行或创建中完成,还是有办法

型号:

class Foo(models.Model):
   name = models.CharField() 

class Bar(models.Model):
   foo = models.ForeignKey('foo)
观点:

class FooViewSet(
    mixins.ListModelMixin,
    mixins.RetrieveModelMixin,
    mixins.CreateModelMixin,
    viewsets.GenericViewSet
):

serializer_class = FooSerializer

def perform_create(self, serializer):
     #???

我希望每次创建Foo时都创建一个Bar。

根据您的具体操作,可以在FooSerializer中使用

然而,如果您总是希望在每次创建Foo时创建Bar,那么我将通过创建所需的Bar来完成这项工作。这可以确保创建了Bar,例如,即使您在shell中创建了一个Foo

@receiver(post_save, sender=Foo)
def create_bar_on_foo_created(sender, instance=None, created=False, **kwargs):
    if created:
        Bar.objects.get_or_create(foo=instance)