【问题标题】:Pass *args in django templates在 Django 模板中传递 *args
【发布时间】: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>\d{0,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 %}

标签: django python-3.x django-templates django-views django-urls


【解决方案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 吗?
猜你喜欢
  • 2015-05-16
  • 2015-10-25
  • 1970-01-01
  • 2017-03-10
  • 2020-08-21
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
  • 2017-05-17
相关资源
最近更新 更多