我已经在models.py中构建了一个带有django-categories的简单模型:
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,但无法确定正确的语法。
有人可以帮我解决这些问题吗?
感谢。
答案 0 :(得分:0)
对于第一个问题,以下查询应该有效:
.filter(category__name="foo")
关于第二个问题,您需要为每个类别创建一个视图。如果您已经完成此操作,请分享您的观看次数和模板代码,以便我们为您提供帮助。