2011-10-19 6 views
0

TEMPLATE_CONTEXT_PROCESSORSのプロセッサがコンテキストの編集を許可されていないか、混乱していますか?私はレンダリングされる前にContext()を編集するには? Django

class MyContext(Context): 
    def __init__(self, *args, **kwargs): 
     Context.__init__(self, *args, **kwargs) 

コンテキストをサブクラス化し、それは私が辞書にアクセスも与えていないcontext_instanceするためにそれを渡すようにしようとした場合でも 。レンダリングの直前に追加されます。

return render_to_response(template, {'hello':'Hello World'}, context_instance=MyContext()) 

したがって、レンダリングされる前にコンテキストを分析して編集するにはどうすればよいですか。

UPDATE:

私が見つけた唯一の方法は、コンテキストエンド上書き更新方法をサブクラス化することです。

class RequestContext(Context): 

    def update(self,other_dict): 
     print other_dict 
     super(RequestContext, self).update(other_dict) 
+0

なぜこれをやりたいですか? –

+0

私はあなたがadminの助けなしにページの内容を編集することを可能にするデコレータを作りたいと思う。だからあなたはただあなたのモデルを飾るだけです。あなたがそれを行う許可を持っていれば、それはあなたのウェブサイトで編集可能です。私はhttp://aloha-editor.org/を使いたかったのです。それは、大げさなアプリだろう。しかし、コンテキストを編集する方法がない場合、私はそれが欲しかったようにプラグイン可能ではないでしょう。 divでフィールドをラップするだけです – Pol

答えて

0

あなただけの同じ変数名を設定することができ、それはDjangoのdocsをチェックし、それを上書きします。コンテキストプロセッサ内でコンテキストを読み取ることはできません。あなたはおそらくtemplate tagsを使用することができますが、それは本当に意味がありません。

関連する問題