0

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

例如 /username1/points/list 是该用户的积分列表。

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

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

4

1 回答 1

1

您可能会考虑使用middlware来攻击它。具体使用 process_request。这是在调用urlresolver之前调用的,您可以对您想要的请求(在本例中为 request.path)做几乎任何事情。您可以删除用户名并将其存储在请求对象中。细节(显然)取决于您想要/不想移除第一个路径组件的条件。

更新评论: 无论你采取哪种方式,当你调用reverse()时,你必须给它额外的上下文信息——它不能只是自动地自己弄清楚。Django 不玩任何幕后游戏——一切都是直接的 Python,并且没有任何全局状态在舞台外浮动。我认为这是一件好事™。

于 2009-11-07T19:23:27.470 回答