假设有一个模型:
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()
内的行。