在django urls.py中不能这样做。但是可以向视图传递URL查询字符串。例如,如果您点击此url:
http://localhost:8000/Category1-comparison/Brand1-vs-Brand2/?vs=Brand3
Brand3
价值来源
request.GET
. 这样地:
def compare_brand(request, category_slug, brand_slug1, brand_slug2):
brand_slug3 = request.GET.get('vs')
更好的解决方案:
也许更好的方法是将URL查询字符串一起使用。因为那样的话,url会更干净。例如:
# url
path('/comparison/<slug:category_slug>/', compare_brand)
# view
def compare_brand(request, category_slug):
brands = request.GET.getlist('brands')
if len(brands) < 2:
raise Exception('Need 2 brands atleast')
# browser url
http://localhost:8000/comparison/Cat1/?brands=Brand1,Brand2
您可以创建指向同一视图的另一个url
# url
path('<slug:category_slug>-comparison/<slug:brand_slug1>-vs-<slug:brand_slug2>-vs-<slug:brand_slug3>/',views.compare_brand),
path('<slug:category_slug>-comparison/<slug:brand_slug1>-vs-<slug:brand_slug2>/',views.compare_brand)
# view
def compare_brand(request, category_slug, brand_slug1, brand_slug2, brand_slug3=None):
if brand_slug3:
# do something