在 Django 模板中传递 *args
Posted
技术标签:
【中文标题】在 Django 模板中传递 *args【英文标题】:Pass *args in django templates 【发布时间】:2017-11-05 13:52:43 【问题描述】:我确实使用了django分页,但是urls有问题,这是我的urls.py:
url(r'^/blog/$', blog_view.main, name='blog'),
url(r'^/blog/page/(?P<page_id>\d0,9)$', blog.post, name='blog_page'),
我的意见.py:
def post(request, page_id=None):
posts = Posts.objects.all()
pageid = page_id
return render(request, 'base.html', 'posts': posts, 'pageid': pageid,)
我使用引导程序的 base.html:
% url 'blog_page' as blog_page % # Blog page need follow patterns
<ul>
% for post in posts %
<li % if request.path == htt://myblog.com/blog/page/5 % class="active" % endif %> post.title </li> # When I put blog_page django shows error. Help me how to put something to fix this condition.
% endfor %
</ul>
【问题讨论】:
你想告诉我们问题出在哪里吗? 如果有人点击了一个页面(例如:当 request.path 为 /page/5 时)该页面应该有活动类。 % url 'blog_page' page_id % 【参考方案1】:如documenation on HttpRequest objects 中所述,
HttpRequest.path
是
表示请求页面的完整路径的字符串,不包括方案或域。 示例:“/music/bands/the_beatles/”
(强调我的)。
因此,在您的测试中,请忽略方案(顺便说一句,您错误地写为 htt://
)和域部分:
<li % if request.path == /blog/page/5 % class="active" % endif %> post.title </li>
【讨论】:
太好了,有什么办法可以用动态 id 改变那个 5 吗?以上是关于在 Django 模板中传递 *args的主要内容,如果未能解决你的问题,请参考以下文章