【发布时间】:2017-03-12 17:08:44
【问题描述】:
我有这两个基于以下模型的序列化器:
class LanguageSerializer(serializers.ModelSerializer):
class Meta:
model = Language
fields = '__all__'
class GameSerializer(serializers.ModelSerializer):
language = LanguageSerializer()
class Meta:
model = Game
fields = '__all__'
class Game(models.Model):
language = models.ForeignKey(Language)
class Language(models.Model):
name = models.CharField(max_length=50, unique=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
当我尝试创建一个新的Game 实体时,我将这个游戏的Language id 作为参数传递。由于某些原因,DRF 期望该语言以dictionary 而不是integer 的形式传递。这是错误:
{
"language": {
"non_field_errors": [
"Invalid data. Expected a dictionary, but got int."
]
}
}
根据提供的Language id 创建具有Language 属性的Game 向DRF 指示的正确方法是什么?
【问题讨论】:
标签: python django rest frameworks nested