【问题标题】:Template syntax to display breadcrumb for django-categories显示 django-categories 的面包屑的模板语法
【发布时间】: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

我有两个问题:

  1. 在views.py中我使用.filter(category_id=3)返回文章 在blog &gt; sub2 &gt; foo 下,我真的很想使用 .filter(category='foo') 相反,但 Django 报告“没有属性 类别”错误,是否有使用文本版本类别名称的解决方法 而不是id?

  2. 我想在页面顶部创建一个面包屑路径,例如: blog &gt; sub2 &gt; foo

这样:类别名称是可链接的;如果类别包含子类别,则显示子类别列表;如果类别不包含子类别,则显示该类别下的文章列表。

我在这里学习文档https://django-categories.readthedocs.org/en/latest/reference/templatetags.html#breadcrumbs-tag,但无法弄清楚正确的语法。

有人可以帮我解决这些问题吗?

谢谢。

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    对于第一个问题,以下查询应该有效:

    .filter(category__name="foo")
    

    关于第二个问题,您需要为每个类别创建一个视图。如果您已经这样做了,请分享您的视图和模板代码,以便我们为您提供帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 2011-10-11
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多