Django ListView页面和链接
我正在使用DjangoDjango ListView页面和链接,django,url,django-urls,Django,Url,Django Urls,我正在使用DjangoListView和pagination来组织我的博客文章。我还为每个帖子设置了一个slug,但是一旦帖子进入第2+页,点击页面上的帖子链接就会将页码添加到url中。例如: 点击第1页的链接:www.foo.com/myslug 点击第x页(不是第1页)上的链接:www.foo.com/x/myslug 我怎样才能确保点击链接会进入帖子的url?我是这样设置的: HTML扩展名 {% block content %} {% for post in object_lis
ListView
和pagination
来组织我的博客文章。我还为每个帖子设置了一个slug,但是一旦帖子进入第2+页,点击页面上的帖子链接就会将页码添加到url中。例如:
点击第1页的链接:www.foo.com/myslug
点击第x页(不是第1页)上的链接:www.foo.com/x/myslug
我怎样才能确保点击链接会进入帖子的url?我是这样设置的:
HTML扩展名
{% block content %}
{% for post in object_list %}
...
<h4><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h4>
...
</div>
{% endfor %}
{% if page_obj.has_previous %}
<a id='newer' href="/{{ page_obj.previous_page_number }}/">← Newer </a>
{% endif %}
<span id='pages' class="text-muted">Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}</span>
{% if page_obj.has_next %}
<a id='older' href="/{{ page_obj.next_page_number }}/"> Older →</a>
{% endif %}
{% endblock %}
{%block content%}
{%用于对象中的post_列表%}
...
...
{%endfor%}
{%如果页面_obj.has_previous%}
{%endif%}
第{{Page_obj.paginator.num_pages}页中的{{{Page_obj.number}}
{%如果页面_obj.has_next%}
{%endif%}
{%endblock%}
URL
urlpatterns = patterns('',
# index
url(r'^(?P<page>\d+)?/?$', ListView.as_view(
model=Post,
paginate_by=5,
)),
# individual posts
url(r'^(?P<slug>[a-zA-Z0-9-]+)/?$', DetailView.as_view(model=Post,
)),
)
urlpatterns=patterns(“”,
#索引
url(r'^(?P\d+?/?$),ListView.as_视图(
模型=员额,
分页单位=5,
)),
#个别职位
url(r'^(?P[a-zA-Z0-9-]+)/?$,详细视图。如图所示(模型=Post,
)),
)
这是因为get\u absolute\u url的定义不正确。您应该重写该方法以返回该帖子url。根据您的代码:
def get_absolute_url(self):
return "/%s/" % self.slug
为什么不为页码使用querystring变量,并将其排除在URL路由之外?谢谢!我完全忘记了正斜杠