Python 如何编辑内部有多个与当前编辑视图模型相关的通用外部表单的表单集?
在我最近的项目中,我必须创建一个带有单个文件字段的通用模型,因为其想法是跨多个系统模型使用多个文件上传 为此,我使用通用外键创建了这个通用模型,在add视图中,我创建了一个带有extra=1字段的表单集,并通过jquery在模板中,在表单集中添加表单 此外,它工作安静,但我无法调整我的编辑视图 在我的编辑视图中,我尝试:Python 如何编辑内部有多个与当前编辑视图模型相关的通用外部表单的表单集?,python,django,formset,generic-foreign-key,Python,Django,Formset,Generic Foreign Key,在我最近的项目中,我必须创建一个带有单个文件字段的通用模型,因为其想法是跨多个系统模型使用多个文件上传 为此,我使用通用外键创建了这个通用模型,在add视图中,我创建了一个带有extra=1字段的表单集,并通过jquery在模板中,在表单集中添加表单 此外,它工作安静,但我无法调整我的编辑视图 在我的编辑视图中,我尝试: ModelGenericFormset = modelformset_factory( ModelsFileGeneric, form=AddM
ModelGenericFormset = modelformset_factory(
ModelsFileGeneric,
form=AddModelsGenericForm
)
query_files = ModelsFileGeneric.objects.filter(
object_id=model_related_to_generic_model_with_file_field.id,
)
files = ModelGenericFormset(queryset=query_files)
在request.post中:
files_form_set = ModelGenericFormset(
request.POST,
request.FILES
)
for file_form in files_form_set:
file = file_form.save(commit=False)
setattr(
'upload_destination',
'path_to_upload'
)
file.content_object = model_related_to_generic_model_with_file_field
file.save()
观察:
由于文件字段所在的模型是一个非常通用的模型(因此使用通用外键),因此我还需要在运行时(在post后的save in view中)更改字段的upload_to属性(该属性已经修复并正常工作)。
我之所以使用此版本的“upload_to”属性,是因为根据我将多个文件发送到的模型,它将改变文件保存的路径
但在编辑视图的保存中会发生以下错误:
无法更改ModelsFileGeneric,因为数据未验证。
错误在于:
file=file\u form.save(commit=False)
我不知道该怎么办了。谢谢