django路线帮助

dot*_*tty 1 django url routes

干草伙计们,我正在制作一个简单的汽车销售网站 我有一个很好的小urlpattern,运行良好的预期

/car/1/
Run Code Online (Sandbox Code Playgroud)

去那辆有身份证的车,简单吗?

但是,出于SEO的原因,我想向URL添加额外的数据,但忽略它.

/car/1/ford/focus
Run Code Online (Sandbox Code Playgroud)

作为一个例子,我将如何修改我的模式以考虑额外的部分?

2个模式将转到相同的位置并加载相同的视图.

有任何想法吗?

Dan*_*man 10

这对你的SEO没有帮助 - 事实上它会积极地伤害它.如果/car/1/,/car/1/ford/,/car/1/ford/focus/都去同一个网址,你实际上该页面下降搜索股权.这是一个非常糟糕的主意.

如果你真的想这样做,那很简单:

r'^car/(?P<car_id>\d+)/.*/$'
Run Code Online (Sandbox Code Playgroud)

但我真的不会这样做.更好的想法是省略ID并使用make和model来获取汽车:

r'^car/(?P<make>\w+)/(?P<model>\w+)/$'
Run Code Online (Sandbox Code Playgroud)

所以现在您在表单中有URL /car/ford/focus/,并且在您的视图中,您可以执行以下操作:

def myview(request, make, model):
    car = Car.objects.get(make=make, model=model)
Run Code Online (Sandbox Code Playgroud)