2

フォームでdjango-simple-autocompleteを使用しようとしています。ただし、デバッグ出力を に追加するsimple_autocomplete.widgetsと、各フォーム フィールドのwidget2 回呼び出されることがわかります。1回目__init__()はフォーム仕様で指定されたパラメーターを使用し、2回目引数なしで呼び出されます。

次のようなことをして、これを回避する必要があります。

class MyForm(forms.Form):
    def __init__(self,*args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['foo'] = AutoCompleteWidget(url="/json_url")

    foo = forms.ModelChoiceField(
        widget=None,
        ....
        )

いったいなぜそうなのか?

編集/明確化:

  • これは、上記の回避策がなく、代わりに foo 定義に widget=MyWidget() がある場合に発生ます。
  • 2 回呼び出されるのはwidgetです。__init__()
  • @ zubair89-私は持っていますdef __init__()-それが実際に2回呼び出されていることを発見した方法です!
4

0 に答える 0