【发布时间】:2012-05-25 10:29:55
【问题描述】:
我了解您可以将initiate 参数用于this question 中的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 做到这一点?
【问题讨论】:
标签: python django django-forms django-templates django-views