had*_*ulo 5 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 = 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
Run Code Online (Sandbox Code Playgroud)
我希望能够接受 POST 请求,以检查 A 的实例是否已存在。如果没有,它会自动创建它并将其与 B 关联。这是正确的方法吗?我的帖子刚刚收到错误 500。我已经被困了一天不知道如何解决这个问题。需要帮助,非常感谢,谢谢!
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |