如何组合select_related()和value()?

时间:2009-07-31 08:44:37

标签: django django-1.1

我们知道QuerySet有一个value()方法,当有一个foreignkey(例如author)时,结果如下:

[{ 'author_id':3, ... }, ...]

我想要一个结果:

[{ 'author':{'name':'dave',...}, ... }, ...]

我尝试了select_related,但是values()不会显示外键的详细信息,我该怎么办?

2 个答案:

答案 0 :(得分:1)

AFAIK,Django没有内置支持。 select_related永远不会更改查询集的结果,只会更改访问相关对象时的查询数。

您可以使用DjangoFullSerializers来获得与您想要的相似的内容。

答案 1 :(得分:0)

实施每个模型的 unicode 方法,并打印出来。

class Book(..):
    title = models.CharField(..)
    color = models.CharField(...)
    author = models.ForeignKey('Author')
    ...
    def __unicode__(self):
        return u"%s %s %s" %(title, color, author)

class Author(...):
    name = models.CharField(...)
    ...
    def __unicode__(self):
        return name