0

Django で作成されたアプリケーションを想像してください。単純なフォームが表示されます。アプリケーションに触れずに、フォーム フィールドの 1 つをテンプレートでレンダリングするときに事前入力したいとします。

繰り返しますが、元のアプリケーションやそのフォームにはまったく触れたくありません。

推測では、これはインターセプターですよね?Djangoでは、これはミドルウェアとして知られていると思いますか?

私の質問は、このシナリオが Django でどのように処理され、その方法を説明できるかということです。

ありがとう。

4

1 に答える 1

1

フォーム モジュールのインポート後、フォーム インスタンスを作成する前に (ミドルウェアを使用しないで)、次の行をビューに追加できます。

from app.forms import AppForm
AppForm.base_fields['fieldname'].initial="your default value"

ミドルウェアは次のようになります。

class InitialValues(object):
    def process_request(self, request):
        from app.forms import AppForm
        AppForm.base_fields['fieldname'].initial="your default value"   

の前に実行されviewます。ビューの前後にのみ、ミドルウェアをテンプレート レンダリングに挿入することはできません。

于 2013-08-16T13:50:59.673 に答える