2011-08-17 78 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

不客气。 –