【发布时间】:2014-02-05 22:11:31
【问题描述】:
我用 django-categories 构建了一个简单的模型,在 models.py 中我有:
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)
在我的模板“blog/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
我有两个问题:
在views.py中我使用
.filter(category_id=3)返回文章 在blog > sub2 > foo下,我真的很想使用.filter(category='foo')相反,但 Django 报告“没有属性 类别”错误,是否有使用文本版本类别名称的解决方法 而不是id?我想在页面顶部创建一个面包屑路径,例如:
blog > sub2 > foo
这样:类别名称是可链接的;如果类别包含子类别,则显示子类别列表;如果类别不包含子类别,则显示该类别下的文章列表。
我在这里学习文档https://django-categories.readthedocs.org/en/latest/reference/templatetags.html#breadcrumbs-tag,但无法弄清楚正确的语法。
有人可以帮我解决这些问题吗?
谢谢。
【问题讨论】: