Select_Related和JSON - 如何序列化外键对象

时间:2014-06-30 06:42:35

标签: python django django-models django-templates django-views

假设我有两个模型:

class Blog(models.Model):
    name = models.CharField(max_length=100)

class Entry(models.Model):
    blog = models.ForeignKey(Blog)
    headline = models.CharField(max_length=255)

我需要以JSON格式返回所有具有相应博客的条目:

TO_JSON = serializers.serialize('json', Entry.objects.select_related('blog').filter(...))

TO_JSON包含我需要的所有条目,但没有博客。

2 个答案:

答案 0 :(得分:1)

感谢@bento提出了以下答案,该答案可在django serialize foreign key objects处找到:

entries = Entry.objects.select_related('blog').filter(...)
list = []
for row in entries:
        list.append({'blog_title':row.blog.title, 'entry_title': row.title})
return json.dumps(list)

答案 1 :(得分:0)

修改

https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.select_related开始,您可以尝试这样:

e = Entry.objects.select_related('blog').filter(...)
return serializers.serialize('json', [x.blog for x in e])