开发者

How do I add a prefix to all urls and generically parse that as a kwarg

Let's say I have a site where all urls are username specific.

For example /username1/points/list is a list of that user's points.

How do I grab the /username1/ portion of the url from all urls and add it as a kwarg for all views?

Alternatively, it would be great to grab the /username1/ portion and append that to the开发者_开发知识库 request as request.view_user.


You might consider attacking this with middlware. Specifically using process_request. This is called before the urlresolver is called and you can do pretty much anything to the request (request.path in this case) you want to. You might strip out the username and store it in the request object. Specifics depend (obviously) on the conditions under which you do/do not want to remove the first path component.

Updated for comment: Whichever way you go about it, when you call reverse() you have to give it the additional context info -- it can't just automagically figure it out for itself. Django doesn't play any man-behind-the-curtains games -- everything is straight Python and there isn't any global state floating around just off stage. I think this is a Good Thing™.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜