1 回答

TA贡献1860条经验 获得超8个赞
你不能在django urls.py 这样做。但是,您可以将 URL 查询字符串传递给视图。例如,如果您点击此网址:
http://localhost:8000/Category1-comparison/Brand1-vs-Brand2/?vs=Brand3
然后,您可以从 中获取值。喜欢这个:Brand3request.GET
def compare_brand(request, category_slug, brand_slug1, brand_slug2):
brand_slug3 = request.GET.get('vs')
更好的解决方案:
也许更好的方法是一起使用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
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
添加回答
举报