内联 Django 管理循环 cleaned_data
我想要验证所有以行内形式出现的日期,所以我正在开发下面的代码:
class CarDetalleForm(ModelForm):
def __init__(self, *args, **kwargs):
super(CarDetalleForm, self).__init__(*args, **kwargs)
def clean(self):
super(CarDetalleForm, self).clean()
for x, row in enumerate(self.cleaned_data):
date = row['car_carideal-{}-date_0'.format(x)]
//here may be more than one variable to validate date
.... validations dates ....
return self.cleaned_data
class Meta:
model = CarDetail
fields = ['group', 'date']
但是我在这行代码中遇到了一个错误(变量被赋值为“date”):
TypeError: string indices must be integers, not str
所以我可能做错了什么,或者这一行代码不对。有没有人知道怎么做循环来验证所有的日期呢?谢谢大家的帮助。
PS:抱歉我的英语不好 :P
1 个回答
0
我不太明白你想要做什么。一个表单的 cleaned_data
是一个字典,遍历字典时你得到的是它的键。这意味着在每次循环中,row
是一个字符串,而不是一个有键的字典。
你是不是也在使用表单集(formset)?也许你本来是想把代码放在表单集的清理方法里,而不是表单的清理方法里。但如果是这样,那还是不对:每个表单应该自己清理自己的数据,方法是定义 clean_<字段名>
方法。