7

Google App Engine で Django プロジェクトに取り組んでいます。次のような URL があります。

http://localhost:8080/[company]/projects/project

[company]私のurls.pyで定義されたURLパラメーターであることに注意してください:

(r'(^[a-zA-Z0-9-_.]*)/projects/project/(\d*)', 'projects.views.project_form'),

[company]GAE データストアの名前空間を値に設定するミドルウェアから値を取得したいと考えてい[company]ます。

ミドルウェアクラス[company]のメソッドで渡されたリクエストオブジェクトからパラメータを取得することはできますか?process_request

4

1 に答える 1

8

ミドルウェアを使用している場合はprocess_view、ビューの引数にアクセスできるため、会社の値にアクセスできます。関数の定義を見てください。

def process_view(self, request, view_func, view_args, view_kwargs)
    ...

view_args はビューに渡される位置引数のリストで、view_kwargs はビューに渡されるキーワード引数の辞書です。

そのため、次のようにそこから取得できるはずです。

def process_view(self, request, view_func, view_args, view_kwargs):
    company = view_kwargs.get('company', None)

URL 内の名前付きグループと名前なしグループがビュー内の args と kwargs にどのように変換されるかについて、django book からの詳細情報を次に示します。

http://www.djangobook.com/en/1.0/chapter08/#cn38

特に

この [名前付き URL グループ] は、前の例とまったく同じことを実現しますが、1 つの微妙な違いがあります。キャプチャされた値は、位置引数ではなくキーワード引数としてビュー関数に渡されます。

于 2012-08-02T10:27:24.130 に答える