フォームでdjango-simple-autocompleteを使用しようとしています。ただし、デバッグ出力を に追加するsimple_autocomplete.widgets
と、各フォーム フィールドのwidgetが2 回呼び出されることがわかります。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回呼び出されていることを発見した方法です!