2017-07-28 37 views
1

我想有一个像下面的模式我的URL模式:清洁Django应用程序中的网址。没有页面= 1种模式

host:8000/archive/2/ 

我在视图中定义page_kwarg但我仍然收到:host:8000/en/2

代码的形式主要url.py文件:

url(_(r'^archive'), include('events.urls_archive', namespace='archive')), 

开始EDIT1 和链接的形式主要网站我的应用程序:

<a href="{% url 'archive:list' %}" title="{% trans 'Archive' %}"> 
    {% trans 'Archive' %} 
</a> 

末EDIT1

开始EDIT2

这是在我的应用程序网址urls_archive.py

urlpatterns = [ 
    url('^/(?P<page>\d+)/$', ArchiveListView.as_view(), name="list"), 
    url('^/(?P<slug>[-\w]+)/(?P<pk>\d+)$', ArchiveDetailView.as_view(), name="detail"), 
] 

末EDIT2

对我的看法代码:

class ArchiveListView(ListView): 
    model = Booking 
    queryset = Booking.objects.filter(period__type='archive').order_by('-date_start') 
    paginate_by = 80 
    page_kwarg = 'page' 

这里是我的模板代码:

 {% if is_paginated %} 
      {% if page_obj.has_previous %} 
       <a href="/{{ page_obj.previous_page_number }}" class="arrow left"><h4>Previous</h4></a> 
      {% endif %} 
      <span class="arrow header"><h4>Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}</h4></span> 
      {% if page_obj.has_next %} 
       <a href="/{{ page_obj.next_page_number }}" class="arrow right"><h4>Next</h4></a> 
      {% endif %} 
     {% endif %} 

请提供任何帮助。 谢谢。

回答

0

page_kwarg设置页码被传入的键。它不会影响它在页面中的使用方式。出于某种原因,您直接将其输出为/{{ page_obj.previous_page_number }},这可以解决为/2。你应该在相同的格式输出,因为它是通过在:

?page={{ page_obj.previous_page_number}} 

编辑

如果你想指定你的页面数量的路径参数的一部分,你应该使用url标签,像任何其他网址:

{% url 'archive' page=page_obj.previous_page_number %} 
+0

感谢您的回答,但现在我'档案?page = 2'而不是'档案/ 2'。 – Kai

+0

对我不起作用 – Kai

+0

不工作**如何**? –