2013-07-14 192 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