在clean_field方法中设置表单数据

时间:2015-07-14 00:39:15

标签: python django

假设有一个模型:

class SomeModel(models.Model):
    content = models.FileField(...)
    number_of_lines = models.IntegerField()

我使用ModelForm并在content方法中验证了client_content()字段。另外,我计算content中的行数,并且我想使用此数字来设置字段number_of_lines值:

我想出的是:

class SomeForm(forms.ModelForm):
    def clean_content(self):
        self.number_of_lines = 0
        # validation
            self.number_of_lines +=1
        # ...

    def save(self, commit=True):
        instance = super().save(commit=True)
        instance.number_of_lines = self.number_of_lines
        if commit:
            instance.save()
        return instance

self.number_of_lines事情看起来并不正确。有没有更好的办法?也许可以在self.cleaned_data['number_of_accounts']方法中设置clean_content吗?

通常人们建议使用clean()方法来执行此操作,但在这种情况下,我必须从clean_content中删除行计数器并计算clean()内的行。

0 个答案:

没有答案