'collections.OrderedDict' 对象没有属性 'id'
'collections.OrderedDict' object has no attribute 'id'
我的模型与外键相关:
class Speaker(models.Model):
speaker = models.ForeignKey(User, on_delete=models.CASCADE)
class Course(models.Model):
...
author = models.ForeignKey(Speaker, on_delete=models.CASCADE,
related_name='course_author')
我的序列化程序:
class SpeakerSerializer(serializers.ModelSerializer):
class Meta:
model = Speaker
fields = ['id',...]
class CourseSerializer(serializers.ModelSerializer):
....
author = SpeakerSerializer(many=False, required=True)
....
class Meta:
model = Course
fields = ['id', 'author',...]
def create(self, validated_data):
...
author = validated_data.get('author')
...
course, _ = Course.objects.create(author=author.id, **validated_data)
course.save()
我正在向此序列化程序发送 POST 请求并收到此响应:
请帮忙!
course, _ = Course.objects.create(author=author.id, **validated_data)
AttributeError: 'collections.OrderedDict' object has no attribute 'id'
尝试:
author_id = validated_data.pop('author').get('id')
并确保您发送正确的嵌套 JSON API.
请使用 author['id'] 而不是 'author.id' 来获取 OrderdDic 对象中 id 的值。
我的模型与外键相关:
class Speaker(models.Model):
speaker = models.ForeignKey(User, on_delete=models.CASCADE)
class Course(models.Model):
...
author = models.ForeignKey(Speaker, on_delete=models.CASCADE,
related_name='course_author')
我的序列化程序:
class SpeakerSerializer(serializers.ModelSerializer):
class Meta:
model = Speaker
fields = ['id',...]
class CourseSerializer(serializers.ModelSerializer):
....
author = SpeakerSerializer(many=False, required=True)
....
class Meta:
model = Course
fields = ['id', 'author',...]
def create(self, validated_data):
...
author = validated_data.get('author')
...
course, _ = Course.objects.create(author=author.id, **validated_data)
course.save()
我正在向此序列化程序发送 POST 请求并收到此响应: 请帮忙!
course, _ = Course.objects.create(author=author.id, **validated_data)
AttributeError: 'collections.OrderedDict' object has no attribute 'id'
尝试:
author_id = validated_data.pop('author').get('id')
并确保您发送正确的嵌套 JSON API.
请使用 author['id'] 而不是 'author.id' 来获取 OrderdDic 对象中 id 的值。