我知道您可以使用这个问题中的类的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
呢?