我有以下json代码:
{
"word" : "world",
"days" : ["tuesday", "thursday"]
}
DRF给我的错误是:
^{pr2}$这是我的日子序列化程序:
class DaysSerializer(serializers.ModelSerializer):
class Meta:
model = Days
fields = ('day')
这是我的顶级序列化程序:
class WordsSerializer(serializers.ModelSerializer):
days = DaysSerializer(many=True)
class Meta:
model = Words
fields = ('word', 'days')
天数模型是:
class Days(models.Model):
DAYS = (
("sunday", "Sunday"),
("monday", "Monday"),
("tuesday", "Tuesday"),
("wednesday", "Wednesday"),
("thursday", "Thursday"),
("friday", "Friday"),
("saturday", "Saturday"))
day = models.TextField(choices=DAYS)
我想强调的是:
"days" : ["tuesday", "thursday"]
值不是Days表中的键。在
我读到我需要使用大容量serializers。这是今天推荐的路线吗?或者有更简单的方法?在
如果我需要使用批量序列化程序库,我无法从他们的示例中理解如何使用该库来实现我的目的?即(批量)保存多对多条目(日)与其中一条记录(字)。在
p.S
顺便说一下,天和单词之间的关系是没有through
字段的M2M。普通的M2M
附言(2)
我认为这应该起作用的方式是DRF将在Days
表中查找day
列等于tuesday
的日期并生成M2M
如果没有,DRF需要创建记录,然后生成M2M
thursday
也一样。在
如果我正确理解您试图将“days”作为主键列表传递,如果这种情况下尝试将序列化程序更改为以下形式:
您收到的错误是因为当您使用自己的模型序列化程序序列化字段时,DRF希望在默认情况下获取对象列表。您可以在DRF docs中阅读更多有关它的信息。在
在DRF序列化程序中有多种表示关系字段的方法。对于您的具体情况,SlugRelatedField更适合。在
但请记住
相关问题 更多 >
编程相关推荐