2012-03-21 17 views
3

すべてのアプリケーションが独自のWebdoorモデルを持っているので、現在のアプリケーション名(現在のビューを含むアプリケーション)をコンテキストプロセッサから取得しようとしていますが、すべて同じ属性(一部の値が異なります)です。 Webdoorの値はすべてのページで使用されていますので、カスタム・コンテキスト・プロセッサーの中に入れて、すべてのビューで呼び出すよりも簡単にできました。 それだけでなく、他の同様のタスクにも使用できます。 モデル名がわかったら、get_modelメソッドを使ってアプリケーションを呼び出すだけで済みます。コンテキストプロセッサから現在のアプリケーション名を取得する方法は?

誰でもどのように行うのですか?

ありがとうございます!

+0

「現在のアプリケーション名」とはどういう意味ですか?何をするアプリケーションの名前が欲しいのですか?または現在どのような役割を持っていますか? – jpic

+0

現在のビューを含むアプリケーションです。 –

答えて

4

現在のビューが何であるかを把握するには、process_view() middleware methodが必要です。リクエスト変数を追加するのにも便利です。例えば:view_funcがtestapp.views.some_viewある場合

class CurrentViewApplicationName(object): 
    def process_view(self, request, view_func, view_args, view_kwargs): 
     request.current_app = view_func.__module__.split('.')[0] 

testappにrequest.current_appを設定します。それは弾丸ではないかもしれない、いくつかのアプリはサブモジュールのビューなどを持っています...しかし、これはあなたのプロジェクト固有のニーズに微調整するための素敵な初心者になるはずです。

+0

あなたの答えは私が望んでいたよりも良かったです。ツールに私を紹介しました。 ; D –

関連する問題