[英]Django regex - optional grouped parameters
我正在為網站構建urlconf,但面臨兩個問題。
在某些時候,我必須提供最終可以重新排序的任務列表。 問題是我不知道如何配置正則表達式。
到目前為止,我已經知道了:
url(r'^myapp/mytasks, myview.tasks),
默認行為是在www.mydomain.com/myapp/mytasks
上接受請求。
但是,如果用戶按下命令按鈕,則我需要Django也接受以下類型的請求:
www.mydomain.com/myapp/mytasks/sort_by/price_highest
www.mydomain.com/myapp/mytasks/sort_by/price_lowest
但不是
www.mydomain.com/myapp/mytasks/price_lowest
這種情況下有正則表達式嗎?
謝謝大家。
附注:理想情況下,我還想知道如何扭轉它們。
為同一視圖創建兩個url
記錄:
url(r'^myapp/mytasks/$', myview.tasks, name='tasks'),
url(r'^myapp/mytasks/sort_by/(price_highest|price_lowest)/$', myview.tasks,
name='sorted_tasks'),
然后將tasks()
視圖的簽名更改為:
def tasks(request, sort_by=None):
...
在模板中,您可以輕松地指向兩個版本:
{% url 'tasks' %}
{% url 'sorted_tasks' 'price_highest' %}
更新 :如果您真的想只記錄一個url
記錄,那么正則表達式將是:
'^myapp/mytasks/(?:sort_by/(price_highest|price_lowest)/)?$'
但是我不確定它是否可以與{% url %}
標簽一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.