私はDjangoで__init__メソッドをオーバーライドしたカスタムフォームオブジェクトを作成しています。このメソッドをオーバーライドする目的は、新しいパラメータに基づいてドロップダウンボックスを動的に生成することです。Django:カスタムフォームの__init__をオーバーライドする
例えば、
class TicketForm(forms.Form):
Type = Type.GetTicketTypeField()
def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
initial=None, label_suffix=':', empty_permitted=False,
ticket=None):
if ticket:
self.__class__.State = State.GetTicketStateField(ticket.Type)
super(forms.BaseForm, self).__init__(data=data, files=files,
auto_id=auto_id, prefix=prefix, initial=initial,
label_suffix=label_suffix, empty_permitted=empty_permitted)
このソリューションは動作しません。 __init__が呼び出される前にフィールドが作成されているようです。私はこの問題がかなり一般的であると仮定します。これらのクラスの問題を処理するDjangoの方法は何でしょうか。