5

James Bennettの優れたdjango-contact-formを実装していますが、問題が発生しました。私の連絡先ページには、フォームだけでなく、追加のフラットページ情報も含まれています。

お問い合わせフォームが使用している既存のビューを書き直さずに、ビューをラップまたはチェーンできるようにしたいと思います。このようにして、フォームとフラットページデータの両方を同じテンプレート内にレンダリングできるように、コンテキストを介していくつかの追加情報を挿入できます。

これは可能だと言われていると聞きましたが、どうやって動かすのかわからないようです。連絡先フォームビューと呼ばれる独自のラッパービューを作成し、追加できる属性についてHttpResponseオブジェクトを検査しようとしましたが、どちらであるかがわかりません。

編集: Jamesは、最新のコードはここBitBucketで新しく見つけることができるとコメントしました。

4

3 に答える 3

2

あなたが望むことをするかもしれないコンテキストプロセッサがあります。

http://docs.djangoproject.com/en/dev/ref/templates/api/

おそらく、さまざまな「フラットページ情報」をコンテキストに追加できます。

于 2009-02-03T01:18:19.487 に答える
2
  1. URL を使用して適切なフラット ページ オブジェクトを検索するラッパーを記述します。
  2. ラッパーからコンタクト フォーム ビューを呼び出し (そしてそこからの応答を返し)、extra_context引数にフラット ページを渡します (これは、とりわけ、まさにこの種のユース ケースのために存在します)。
  3. 3 番目のステップはありません。
于 2009-02-04T07:14:23.573 に答える
1

コンテキスト プロセッサは、あなたが考えているものです。render_to_response は関係ありません。必要な情報は、ビューが RequestContext を使用しているかどうかです。これにより、コンテキスト プロセッサがアクティブになります。

それら以外に、ビューを「チェーン」してコンテキストに追加する方法はありません。あるビューを別のビューにラップして、それに入るデータを変更することはできますが、その方法でコンテキストに追加することはできません。

于 2009-02-03T03:30:11.560 に答える