我正在尝试创建一个可写的嵌套序列化程序,以便在外键对象不存在的情况下创建它,如下所示:
class A(models.Model):
x = models.CharField()
class B(models.Model):
a = models.ForeignKey(A)
y = models.CharField()
class ASerializer(serializers.ModelSerializer):
class Meta:
model = A
class BSerializer(serializers.ModelSerializer):
a = ASerializer()
class Meta:
model = B
def create(self, validated_data):
a_data = validated_data.pop('a', None)
try:
a = A.objects.get(x=a_data.get('x', None))
except A.DoesNotExist:
a = A.objects.create(**a_data)
b = B.objects.create(a=a, **validated_data)
return b
我希望能够接受POST请求,以检查A的实例是否已存在。 如果没有,它会自动创建它并将其与B.相关联。这是正确的方法吗?我刚刚在POST上收到错误500。 我现在已经被困了一天如何处理这个问题。需要帮助,非常感谢,谢谢!