2011-08-17 98 views
1

我有我的模型:的Django:訪問模板數據與FK

class Volume(models.Model): 
    volnumber = models.IntegerField('Volume Number', primary_key=True) 
    year = models.TextField() 
    #...# 

class Article(models.Model): 
    volnumber = models.ForeignKey(Volume) 
    title = models.TextField(blank=True) 
    slug = models.SlugField(max_length=100, db_index=True) 
    #...# 

我的觀點:

# Article detail 
def article_detail(request, slug): 
return render_to_response('article_detail.html', { 
    'article': get_object_or_404(Article, slug=slug), 
}) 

我的模板:

{{ article.volume.year }}. <strong class="title">{{ article.title }}</strong>.Journal Vol.{{ article.volnumber }} 

問題是,我沒有得到任何年份的輸出(標題和體積都很好)。語法似乎是正確的..我做錯了什麼?

回答

0

嘗試:

{{ article.volnumber.year }} 

既然你只是following the relationship forwardarticle.volnumber應該給你相關的卷對象的引用。

由於article沒有volume屬性,因此您沒有看到模板中的任何內容。模板引擎默默無聞,沒有任何內容被打印出來。


更重要的是,使引用更直觀,你可能要考慮從volnumber簡單volume重命名的屬性,爲Article模型。

class Article(models.Model): 
    volume = models.ForeignKey(Volume) 
    # ... 

使用article.volume.yeararticle.volume.volnumber是,在我看來,很多比article.volnumber.volnumber更具可讀性。

+0

好的。得到它了。關於該字段的好點也是如此。謝謝。 –

+0

不客氣。 –