Django Restful 框架发布用于创建外键(如果尚不存在)

wud*_*own 5 python django django-rest-framework

class ModelA(models.Model):
    name = models.CharField(max_length=100)
    code = models.CharField(max_length=100, default='')

class ModelB(models.Model):
    name = models.CharField(max_length=100)
    code = models.CharField(max_length=100, default='')

class ModelC(models.Model):
    name = models.CharField(max_length=100)
    modelA = models.ForeignKey(ModelA, on_delete=models.CASCADE)
    modelB = models.ForeignKey(ModelB, on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)

这些是模型。

class ModelASerializer(serializers.ModelSerializer):
    class Meta:
        model = ModelA
        fields = "__all__"

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

class ModelC(serializers.ModelSerializer):
    modelA = ModelASerializer()
    modelB = ModelBSerializer()
    class Meta:
        model = ModelC
        fields = "__all__"
Run Code Online (Sandbox Code Playgroud)

这些是我的序列化器。

现在我对 GET 请求没有任何问题。我想要实现的是,当我对 ModelC 发出发布请求时,如果 ModelA 和 ModelB 尚不存在,则创建它们。现在,我可以通过删除嵌套序列化器来使用现有的 modelA 和 modelB 进行发布。

感谢大家的帮助。