【发布时间】:2014-08-18 21:27:35
【问题描述】:
views.py
我正在创建一个要序列化并以 JSON 形式返回的查询集。查询集如下所示:
all_objects = Program.objects.all()
test_data = serializers.serialize("json", all_objects, use_natural_keys=True)
这会拉回除“用户”模型(跨两个模型链接)之外的所有内容。
models.py
from django.db import models
from django.contrib.auth.models import User
class Time(models.Model):
user = models.ForeignKey(User)
...
class CostCode(models.Model):
program_name = models.TextField()
...
class Program(models.Model):
time = models.ForeignKey(Time)
program_select = models.ForeignKey(CostCode)
...
问题
我返回的数据包含时间、程序和成本代码信息,但我无法查询回“用户”表。我怎样才能在同一个查询集中回复说“用户名”(来自用户表)?
注意:我已将我的查询集更改为all_objects = Time.objects.all(),这会获取用户信息,但它不会拉入“成本代码”。我的模型也有返回 get_by_natural_key 的 ModelManager,因此相关字段出现在我的 JSON 中。
最终,我希望所有四个模型的数据都出现在我的序列化 JSON 字段中,我只是缺少“用户名”。
这是 JSON 对象当前在 Firebug 中的显示方式:
感谢您的帮助!
【问题讨论】:
标签: django django-orm