tags:

views:

75

answers:

2

We know there is a value() method of QuerySet, when there is a foreignkey (author, for example), it result like:

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

I want a result like:

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

and I tried select_related, but values() won't show the detail of the foreignkey, what shall I do?

A: 

AFAIK, Django doesn't have builtin support for that. select_related never changes the outcome of a queryset, only the number of queries when you access related object.

You could use DjangoFullSerializers to get something that is similar to what you want.

piquadrat
DjangoFullSerializers is helpful, thanks.
fallhunter
A: 

Implement the unicode method of each Model, and print it.

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
Josh Smeaton
reading your question again, I think I've totally missed the mark.
Josh Smeaton
well, thank you all the same, you did give a great hint
fallhunter