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