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)