0

すべての URL がユーザー名固有のサイトを持っているとしましょう。

たとえば、/username1/points/list はそのユーザーのポイントのリストです。

すべての URL から URL の /username1/ 部分を取得し、すべてのビューの kwarg として追加するにはどうすればよいですか?

別の方法として、/username1/ の部分を取得し、それを request.view_user としてリクエストに追加することもできます。

4

1 に答える 1

1

これをmiddlwareで攻撃することを検討してください。具体的には process_request を使用します。これはurlresolver が呼び出されるに呼び出され、要求 (この場合は request.path) に対してほとんど何でも行うことができます。ユーザー名を取り除いて、リクエスト オブジェクトに保存することもできます。詳細は、(明らかに) 最初のパス コンポーネントを削除する/削除しない条件によって異なります。

コメントのために更新: どちらの方法で行っても、reverse()を呼び出すときは、追加のコンテキスト情報を提供する必要があります。それ自体で自動的に把握することはできません。Django は舞台裏のゲームをプレイしません。すべてが Python であり、ステージのすぐ外に浮かぶグローバルな状態はありません。これはGood Thing™だと思います。

于 2009-11-07T19:23:27.470 に答える