如何一次以两种模式创建两个记录,一个具有外键

时间:2019-03-14 14:40:21

标签: django django-rest-framework django-serializer

假设我有两个模型。 ModelA和ModelB.ModelB将具有ModelA的Foregin密钥。我想在两个表中都创建一个具有foregin键的记录。

models.py

Class ModalA(models.Model):
  name = models.CharField(max_length=200)
  location = models.CharField(max_length=200)

Class ModelB(models.Model):
   modela = models.ForeignKey(ModalA,on_delete=models.CASCADE)
   state = models.CharField(max_length=200)
   country = models.CharField(max_length=200)

serializer,py

class ModelBSerializers(serializers.ModelSerializer):
   class Meta:
    model = ModelB
    fields = "__all__"



class ModalASerializers(serializers.ModelSerializer):
      class Meta:
        model = ModalA
        fields = "__all__"

     def create(self, validated_data):
    return ModalA(**validated_data)

我想知道如何在表格中创建机器人记录。

1 个答案:

答案 0 :(得分:0)

有两种方法可以确保我们可以根据某些依赖要求填充两个不同的模型。就像在插入模型A之后一样,必须有模型B的条目,反之亦然。一种推荐的方法是使用django-signal link(发布/发布更适合方案的内容)。我想添加其他link,如果您还没有使用django-signal,可以关注此帖子。