内联django admin loop cleaning_data

时间:2014-05-06 18:59:16

标签: python django

我想验证内联的所有日期,我正在开发以下代码:

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

1 个答案:

答案 0 :(得分:0)

我不太确定你在这里想做什么。表单cleaned_data是一个字典,迭代字典会为您提供密钥。这意味着在循环的每次迭代中row是一个字符串,而不是一个本身就有密钥的字典。

你是否也在使用formset?也许你打算把代码放在formset的干净方法中,而不是表格中。但如果是这样,那仍然是错误的方式:每个表单都应该通过定义clean_<fieldname>方法来清理自己的数据。