在Django中定义特定的URL

时间:2015-10-19 07:51:13

标签: django

在学校应用程序中,我想配置2个URL模式。第一个是通用的,而第二个是特定的。我想将第二个name变量用于{% url }%标记。这是我的实施:

urls.py

urlpatterns = [
    url(r'^school/list-students/?page=1$', school.views.liststudents, name='list_students_one'),
    url(r'^school/list-students/(?P<page>[0-9]{1,3})', school.views.liststudents, name='list_students'),
]

所以,在我的学生 base.html 中说我可以使用

<a href="{% url 'list_students_one' %}">List Students</a>

这种方法有更聪明的实现吗?

1 个答案:

答案 0 :(得分:1)

首先,你的网址可能没有做你认为他们正在做的事情,class StudentListView(ListView): model = Student template_name = 'list_students.html' paginate_by = 10 url(r"^school/list-students", StudentListView.as_view(), name='list_students_one'), 是一个正则表达式字符,匹配前面组中的0或1(它不是你认为的get参数!)

其次,您似乎只是在重新创建ListView,因此切换到使用它可以解决大部分语法问题。

{{1}}

第三,

  

特别是,我想使用第一页的page参数访问url。

如果您没有提供get参数,那么默认情况下,它将访问第一页,因此您现有的网址很好