【问题标题】:Python Django Form Wizard: How can I change the filename of an filefield before step data is saved?Python Django 表单向导:如何在保存步骤数据之前更改文件字段的文件名?
【发布时间】:2014-01-24 09:06:45
【问题描述】:

我有一个关于表单向导的问题。我正在使用一个有 6 个步骤的表单向导,在第 5 步中有一个文件字段。一切正常,除非我尝试上传文件名包含非 ascii 字符的文件。我写了一个替换非ASCII字符的方法,并将其放入我模型的保存方法中。这也有效。

现在的问题是,表单向导会在所有表单的数据最终保存之前将文件上传到临时目录。这里没有调用模型的保存方法,因此文件名没有改变,我得到一个错误。如何在步骤数据保存前更改文件名?

更新:我必须配置我的 Apache 以便它接受非 ASCII 文件名 - https://docs.djangoproject.com/en/1.4/howto/deployment/modpython/#if-you-get-a-unicodeencodeerror

【问题讨论】:

    标签: python django django-formwizard


    【解决方案1】:

    这里是示例代码。您也可以将logo.jpg 替换为文件名:

    user.id_file.path.save("user/"+str(user.id)+"/logo.jpg", form.cleaned_data['logo'])
    user.id_file.save()
    

    【讨论】:

    • 感谢 Priyank,但我该把代码放在哪里呢?在我的表单中还是在我的向导视图中?
    猜你喜欢
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 2016-11-06
    相关资源
    最近更新 更多