我想验证内联的所有日期,我正在开发以下代码:
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']
但我有以下错误(变量已分配"日期"):
TypeError: string indices must be integers, not str
然后我做错了或该行不对应 任何人都知道如何使循环验证所有日期? 谢谢您的帮助。
PS:对不起我的英语:P
答案 0 :(得分:0)
我不太确定你在这里想做什么。表单cleaned_data
是一个字典,迭代字典会为您提供密钥。这意味着在循环的每次迭代中row
是一个字符串,而不是一个本身就有密钥的字典。
你是否也在使用formset?也许你打算把代码放在formset的干净方法中,而不是表格中。但如果是这样,那仍然是错误的方式:每个表单都应该通过定义clean_<fieldname>
方法来清理自己的数据。