2009-11-07 32 views
0

比方說,我有一個網站,所有網址都是用戶名特定的。如何爲所有網址添加前綴並一般性地解析爲kwarg

例如/ username1/points/list是該用戶點的列表。

如何從所有網址抓取/ username1/url部分並將其添加爲所有視圖的kwarg?

或者,最好是抓住/ username1 /部分並將其作爲request.view_user附加到請求中。

回答

1

你可能會考慮用middlware來攻擊它。具體使用process_request。這在之前被稱爲,因此調用了urlresolver,並且您可以對要執行的任何請求(在此情況下爲request.path)執行任何操作。您可以刪除用戶名並將其存儲在請求對象中。具體情況取決於(顯然)您在何種條件下不想刪除第一個路徑組件。

更新了評論: 你去了解它無論怎樣,當你調用reverse()你必須給它附加上下文信息 - 它不能只是自動的數字出來爲自己。 Django不會玩任何幕後遊戲 - 一切都是直接的Python,並且沒有任何全球性的國家正在浮出水面。我認爲這是一件好事™。

+0

這種方法效果很好。 但是 - 我很努力地將反向路徑組件返回到URL以反轉URL。對於給定的反向任何建議都無法訪問請求對象來訪問該用戶? – tee 2009-11-07 19:30:40

相關問題