快速问题我正在尝试保存模型并进行以下设置
models.py
class Example1(models.Model):
field1 = models.CharField(max_length=90, null=True, blank=True)
class Example2(models.Model):
field2 = models.CharField(max_length=90, null=True, blank=True)
example1 = models.ForeignKey(Example1, on_delete=models.CASCADE, related_name='example1_example2')
serializers.py
class Example1Serializer(serializers.ModelSerializer):
def create(self, validated_data):
return Example1.objects.create(**validated_data)
class Meta:
model = Example1
fields = ['id', 'field1']
class Example2Serializer(serializers.ModelSerializer):
def create(self, validated_data):
return Example2.objects.create(**validated_data)
class Meta:
model = Example2
fields = ['id', 'example1', 'field2']
在启动以下代码时
new_example1 = Example1Serializer(data=JSONEXAMPLE1DATA)
if new_example1.is_valid():
new_example1.save()
**works well**
JSONEXAMPLE2DATA = {
'field2' = 'test',
'example1' = new_example1.data['id']
}
new_example2 = Example2Serializer(data=JSONEXAMPLE2DATA)
if new_example2.is_valid():
new_example2.save()
**doesnt work gives must be a "Example1" instance**
将 JSONEXAMPLE2DATA
更改为
JSONEXAMPLE2DATA = {
'field2' = 'test',
'example1' = new_example1
}
给出 Incorrect type. Expected pk value, received Example1Serializer.
设置有误吗?
答案 0 :(得分:0)
而不是使用这个:
JSONEXAMPLE2DATA = {
'field2' = 'test',
'example1' = new_example1.data['id']
}
使用这个:
JSONEXAMPLE2DATA = {
'field2' = 'test',
'example1' = Example1.objects.get(id=new_example1.data['id'])
}
希望这会奏效;)