问题很简单: 我知道Django在使用
时不会序列化相关模型serialize("json", queryset)
例如:如果我有一本作者的书:
class Book(models.Model):
author = models.ForeignKeyField(Author)
序列化时,我得到了Books字段,但只有作者的pk。 这是为什么?这是一个设计决定吗?如果就是这样,为什么?
答案 0 :(得分:1)
可以使用自然键,自定义管理器和get_by_natural_key()
。 Django doc有一个完整的解释,请read here。我宁愿不在这里复制粘贴一切。
通过使用此方法,您可以像这样转换常规序列化 -
{
"pk": 1,
"model": "store.book",
"fields": {
"name": "Mostly Harmless",
"author": 42
}
}
对此 -
{
"pk": 1,
"model": "store.book",
"fields": {
"name": "Mostly Harmless",
"author": ["Douglas", "Adams"]
}
}