循环通过ModelForm字段并标识FileField和ImageField

时间:2018-02-11 13:24:45

标签: django django-forms

我正在为表单创建通用的save方法。 在保存中,我想迭代字段,如果字段是FileField的实例,则执行某些操作

   def save(self, commit=True):
        obj = super().save(commit=False)
    for field in self.fields:
            if isinstance(field, forms.FileField) and obj:

这不起作用,因为如果我检查字段的类型是str。我怎样才能获得真实的模型或声明的类型?

1 个答案:

答案 0 :(得分:0)

我找到了答案:self.fields是一个OrderedDictionary,所以我在迭代键而不是迭代值:

for field,value in self.fields.items():
            if isinstance(value, forms.FileField) and obj: