Python 如何用clean方法从model_formset_工厂的self.data中获取文件

Python 如何用clean方法从model_formset_工厂的self.data中获取文件,python,django,forms,models,Python,Django,Forms,Models,我正在使用modelformset\u factory编辑界面上的多个图像。 我在每个图像中都有以下字段 Name User City 我允许用户选择当前不在系统中的新用户(在这种情况下,我应该在我的 def clean_user(self)而不是ID 但是使用model\u formseta\u factory,我在我的self.data中获得了一些有线名称。当我尝试获取self.data.get('user')时,我什么也得不到,显然没有这个名称的键, 键的形式类似于表单0\u用户等 fi

我正在使用
modelformset\u factory
编辑界面上的多个图像。 我在每个图像中都有以下字段

Name
User
City
我允许用户选择当前不在系统中的新用户(在这种情况下,我应该在我的
def clean_user(self)
而不是
ID

但是使用
model\u formseta\u factory
,我在我的self.data中获得了一些有线名称。当我尝试获取self.data.get('user')时,我什么也得不到,显然没有这个名称的键, 键的形式类似于
表单0\u用户

fields = ['city', 'name']
注意,我的字段中没有用户。如果有,则验证失败

def clean(self):
    data = self.cleaned_data
    data['name'] = data.get('name', '').strip()
    return data
很好

pic_credits = self.data.get('user')
但事实并非如此

pic_credits = self.data.get('form-0-name')
这也行


请提供帮助。

如果您想使用
self.data
而不是
self.cleaned\u data
,您可以使用
auto\u id
prefix
字段构造“复合前缀”(或者至少当表单已由表单集实例化时)

请参见
\u construct\u form()

您的方法如下所示:

def clean(self):
    # ...

    form_prefix_and_autoid = "%s-%d-" % (self.prefix, self.auto_id)
    pic_credits = self.data.get(form_prefix_and_autoid + 'name')         

    # ...

更新:

调用方法
self.add_prefix

    pic_credits = self.data.get(self.add_prefix('name'))

有人能帮我吗?你找到解决办法了吗?