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'))
有人能帮我吗?你找到解决办法了吗?