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()]
}