JSON для отношений с внешним ключом

Допустим, у меня есть пример, подобный документу:

class Reporter(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    email = models.EmailField()

    def __unicode__(self):
        return u"%s %s" % (self.first_name, self.last_name)



class Article(models.Model):
    headline = models.CharField(max_length=100)
    pub_date = models.DateField()
    reporter = models.ForeignKey(Reporter)

    def __unicode__(self):
        return self.headline
    def json(self):
        return {
            'headline': self.headline,
            'pub_date': self.pub_date,
    }

    class Meta:
        ordering = ('headline',)

Как бы я сделал дамп JSON для репортера, возвращая все связанные статьи? Я надеялся что-то вроде этого для класса Reporter:

    def json(self):
    return {
                'first_name': self.first_name,
                'last_name': self.last_name,
                'email': self.email,
                'articles': for a in self.article_set:
                                    a.json(),
    }

но нет такой удачи. Я просмотрел документацию, но все, похоже, направлено в другую сторону.

1 ответ

Решение

Попробуй это:

def json(self):
return {
            'first_name': self.first_name,
            'last_name': self.last_name,
            'email': self.email,
            'articles': [ a.json for a in self.article_set.all()]
}
Другие вопросы по тегам