Python Django Rest框架:可写嵌套序列化程序获取或创建
我试图创建一个可写的嵌套序列化程序,如果外键对象不存在,就会创建它,有点像这样:Python Django Rest框架:可写嵌套序列化程序获取或创建,python,django-rest-framework,Python,Django Rest Framework,我试图创建一个可写的嵌套序列化程序,如果外键对象不存在,就会创建它,有点像这样: 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
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请求,这些请求可以检查一个实例是否已经存在。
如果不是,它会自动创建并将其与B关联。这是正确的方法吗?我刚在我的帖子上得到一个错误500。
我已经被困了一天,不知道该如何处理这个问题。需要帮助,非常感谢,谢谢 请添加错误消息好吗?