2014-02-05 88 views
0

我已經建立了Django的類的簡單模型,在models.py我:模板語法來顯示Django的類別麪包屑

class Article(models.Model): 
    title = models.CharField(max_length=120) 
    # ... 
    category = models.ForeignKey('categories.Category') 

在我的views.py我有

class IndexView(generic.ListView): 
    template_name = 'blog/index.html' 
    context_object_name = 'latest_article_list' 
    paginate_by = 25 

    def get_queryset(self): 
     return Article.objects.order_by('pub_date').filter(category_id=2) 

在我的模板 '博客/ index.html的' 我有:

{% load category_tags %} 
... 
{% for blog in latest_article_list %} 
    <li><a href="/uphero/{{ blog.id }}">{{ blog.title }}</a></li> 
{% endfor %} 
... 

我已經創建了三個類別:

blog 
    |-- sub1 
    |-- sub2 
     |-- foo 
     |-- bar 

我有兩個問題:

  1. 在我的views.py我以前.filter(category_id=3)返回文章 blog > sub2 > foo下,我真的想用 .filter(category='foo')代替,但Django的報告「無屬性 類別「錯誤,是否有解決方案使用文本版本類別名稱 而不是由id

  2. 我想在頁面頂部創建一個麪包屑路徑,例如: blog > sub2 > foo

這樣的:類別名稱可鏈接;如果類別包含子類別,則顯示子類別列表;如果該類別不包含子類別,則顯示該類別下的文章列表。

我在這裏研究文檔https://django-categories.readthedocs.org/en/latest/reference/templatetags.html#breadcrumbs-tag但無法確定正確的語法。

有人可以幫我解決這些問題嗎?

謝謝。

回答

0

對於第一個問題,下面的查詢應該工作:

.filter(category__name="foo") 

關於你提到的第二個問題,你將需要爲每個類別的視圖。如果您已經完成此操作,請分享您的觀點和模板代碼,以便我們可以爲您提供幫助。