如何为所有网址添加前缀,并将其作为kwarg进行统一解析

时间:2009-11-07 18:58:24

标签: django django-urls

假设我有一个网站,其中所有网址都是用户名特定的。

例如/ username1 / points / list是该用户点数的列表。

如何从所有网址中获取网址的/ username1 /部分,并将其添加为所有视图的kwarg?

或者,抓住/ username1 /部分并将其作为request.view_user附加到请求中会很棒。

1 个答案:

答案 0 :(得分:1)

您可以考虑使用middlware攻击此问题。特别是使用process_request。这在调用urlresolver之前被称为,你可以对你想要的请求(在这种情况下是request.path)做任何事情。您可以删除用户名并将其存储在请求对象中。具体情况(显然)取决于您/不想删除第一个路径组件的条件。

更新评论: 无论你采用哪种方式,当你致电reverse()时,你必须给它额外的背景信息 - 它不能只是自动地为自己找出它。 Django没有玩任何幕后游戏 - 一切都是直接的Python,并且没有任何全球状态在场外漂浮。我认为这是一件好事。