【发布时间】:2013-02-20 19:47:59
【问题描述】:
我有类别模型:
class Category(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField()
我希望在我的基本 html 中有我的类别列表。怎么办?
<ul>
<li class="category">Search Property</li>
{% for cat in category %}
<li class="category_link"><a href="/category/{{ cat.slug }}/">{{ cat.name }}</a></li>
{% endfor %}
</ul>
views.py
def category(request):
category = Category.objects.all()
return render_to_response('base.html',{'category':category}, context_instance=RequestContext(request))
urls.py:
url(r'^cat/','content.views.category'),
)
这项工作仅在 127.0.0.1:8000/cat
我在所有视图中都需要这个(我的类别显示在 base.html 中)。怎么办?
【问题讨论】:
-
如果您在所有视图中都需要它,我会使用中间件“注入”它并将其添加到您的会话中,然后从您的
base.html中获取它 -
听起来不错,如何将这个功能添加到中间件中?
-
中间件不是完成这项工作的最佳工具 - 最好在此处使用自定义模板标签。
-
附带说明,在模板中硬编码 url 是不好的做法。请参阅 docs.djangoproject.com/en/dev/ref/models/instances/… 和 docs.djangoproject.com/en/dev/ref/urlresolvers/… 了解在 Django 中构建 url 的正确方法。
标签: django