2015-10-19 38 views
1

在學校應用程序中,我想配置2個URL模式。第一個是通用的,而第二個是特定的。我想爲{% url }%標記使用第二個變量的name變量。這是我的實現:在Django中定義特定的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> 

是否有一個更聰明的執行本方法?

+0

你試圖做[分頁](https://開頭的文檔。 djangoproject.com/en/1.8/topics/pagination/)?更具體地說,它看起來像你試圖重新創建[ListView](https://docs.djangoproject.com/en/1.8/ref/class-based-views/generic-display/#django.views.generic.list .ListView) – Sayse

+0

是的,我正在做分頁。涼!讓我看看這個!但我的更重要的問題是把分頁作爲鏈接 – bryansis2010

+0

如果我理解你的權利,然後''{%url'list_students_one'%}?page = 1「'應該工作...雖然我沒有測試這是我爲什麼'噸把它作爲一個答案.. – Sayse

回答

1

首先,你的網址可能不會做你認爲他們在做什麼,?是一個正則表達式字符匹配0或前一組1(它不是GET參數,你認爲這是!)

二,你似乎只是再造一個ListView,所以切換到使用,將解決大部分的語法問題..

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'), 

三,

特別

,我想要訪問帶有第一頁的頁面參數的url。

如果你不提供一個GET參數則默認情況下,它會進入第一頁,這樣您現有的網址是好的