7

我需要清理内联表单集中的特定字段,但我不知道该怎么做。

我尝试过使用表单集def clean(self)方法,但不知道在哪里保存清理后的值。如果我尝试将清理后的值设置为forms[0].data['field']“此 QueryDict 实例是不可变的”错误。

在“正常”形式def clean_fieldXY(self)中,它使用 I return cleaned_value.

请帮忙。

4

1 回答 1

9

您可以将内联表单集设置为使用表单类,然后您可以clean为该字段创建一个函数。

myapp/forms.py

class InlineFormsetForm(forms.Form)
    myfield = forms.CharField(required=False, max_length=50)

    def clean_myfield(self):
        data = self.cleaned_data['myfield']
        if data == 'badinput':
            raise forms.ValidationError("I hates it!")
        return data

那么,在myapp/views.py

from myapp.forms import InlineFormsetForm
from myapp.models import ParentRecord, ChildRecord

def editmything(request):
    MyFormSet = inlineformset_factory(ParentRecord, ChildRecord, form=InlineFormsetForm)
于 2010-09-10T20:12:45.263 回答