如何定義 URL 模式,以便可以向 URL 傳遞所需數量的參數?我確實研究了文檔和其他 stackoverflow 問題,但沒有找到類似的內容。我需要它作為電子商務網站的過濾器。我想實現這樣的目標:urlpatterns = [ path('test/<str:var1>-<str:var2>/<str:var3>-<str:var4>/...', views.test, name='test'),]在我的視圖函數中,我會這樣定義它:def test(request, *args, **kwargs): # Do whatever you want with kwargs return HttpResponse('Test')
2 回答

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
我認為這是創建路徑的錯誤方法,如果您想將其用作過濾器而不是在路徑中使用它,則應該使用 url 參數作為 get 請求。
但如果您堅持這樣做,您可以使用正則表達式“re_path”
# urls.py
from django.urls import path, re_path
from django.conf.urls import url
from myapp import views
urlpatterns = [
? ? re_path(r'^test/(?P<path>.*)$', views.test, name='test'),
? ? # or use url instead it's same thing
? ? url(r'^test/(?P<path>.*)$', views.test, name='test'),
]

子衿沉夜
TA貢獻1828條經驗 獲得超3個贊
您考慮過使用query_params
嗎?
那是path('test', views.test, name='test')
網址:/test/?filter=asd...
然后通過視圖中的請求訪問它:
def test(request): params = request.GET.get('filter', None) return HttpResponse()
看看你是否能像這樣解決你的問題:)
添加回答
舉報
0/150
提交
取消