第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 django 中傳遞多個(gè)可選 URL 參數(shù)?

如何在 django 中傳遞多個(gè)可選 URL 參數(shù)?

侃侃爾雅 2023-10-11 09:54:51
如何傳遞多個(gè)可選的 URL 參數(shù)?例如,我想傳遞 2 個(gè)參數(shù):my_color和my_year,但它們是可選的,因此可能不會(huì)傳遞它們中的任何一個(gè),也可能兩者都傳遞,或者可能只有一個(gè)。目前urls.py我有:urlpatterns = [     re_path(r'^products/(?P<my_color>.*)/(?P<my_year>.*)$', some_view), ]這顯然是不正確的,只有當(dāng)它們都通過(guò)時(shí)才有效。什么是正確的解決方案?PS 當(dāng)只需要傳遞一個(gè)可選參數(shù)時(shí),我找到了答案,但不知道如何對(duì)少數(shù)參數(shù)執(zhí)行相同的操作。在這種情況下,“多路線選項(xiàng)”似乎也不是解決方案(?)
查看完整描述

1 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果是數(shù)字myyear序列,并且是非數(shù)字序列,則可以使用mycolor


urlpatterns = [

    re_path(r'^products/((?P<my_color>\D+)/)?(?P<my_year>\d+)$', some_view),

]

如果或不存在,這將為相應(yīng)元素傳遞一個(gè)空字符串。因此,您可以編寫(xiě)一個(gè)如下所示的視圖:my_colormy_year


def some_view(request, my_color, my_year):

    if my_color:

        # …

    if my_year:

        # …

如果兩者具有相同的字符序列,這是不可能的,因?yàn)槟鷮⑷绾谓忉宲roducts/bla?是bla顏色還是年份?


話雖這么說(shuō),我認(rèn)為你把事情搞得太復(fù)雜了。您可以定義四種模式,例如:


urlpatterns = [

    path(r'^products/', some_view),

    path(r'^products/<int:year>/'),

    path(r'^products/<str:color>/'),

    path(r'^products/<str:color>/<int:year>/', some_view),

]

因此,您在這里為同一視圖定義了四個(gè)視圖。然后視圖可以定義可選參數(shù):


def some_view(request, color=None, year=None):

    # …


查看完整回答
反對(duì) 回復(fù) 2023-10-11
  • 1 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)