この質問からクラスのinitiate
パラメーターを使用できることを理解しています。Form
編集フォームを作成していて、既存のオブジェクトから値を開始する方法を見つけようとしています。
テンプレート レベルとビュー レベルのどちらで行うのですか (テンプレート レベルでの方法もわかりません)。それとも、実際のオブジェクトをフォームに渡してフォームレベルで開始する必要があるのでしょうか?
ベストプラクティスは何ですか?
編集:
@Bentoの場合:私のオリジナルForm
では、このようなことをしています
class OrderDetailForm(forms.Form):
work_type = forms.ChoiceField(choices=Order.WORK_TYPE_CHOICES)
note = forms.CharField(widget=forms.Textarea)
def __init__(self, creator_list=None, place_list=None, *args, **kwargs):
super(OrderCreateForm, self).__init__(*args, **kwargs)
if creator_list:
self.fields['creator'] = UserModelChoiceField(
queryset=creator_list,
empty_label="Select a user",
)
def clean(self):
super(OrderCreateForm, self).clean()
if 'note' in self.cleaned_data:
if len(self.cleaned_data['note']) < 50:
self._errors['note'] = self.error_class([u"Please enter a longer note."])
del self.cleaned_data['note']
return self.cleaned_data
どうすればそれを行うことができModelForm
ますか?