2013-07-14 137 views
0

比方说,我有这样的文档的一个例子: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转储记者,返回所有相关的文章?我希望这样的事情对于记者类:

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

真棒,工作就像一个魅力。如果只有Stack的每个人都像你一样有帮助! – user2476581