簡體   English   中英

Django正則表達式-可選分組參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM