【问题标题】:Django Custom image upload field with dynamic path具有动态路径的 Django 自定义图像上传字段
【发布时间】:2011-06-16 10:54:33
【问题描述】:

我正在尝试创建自己的字段类型来上传图像,它不会在 django 管理面板中使用。我想语法可能看起来像:

photo = CustomImageField(upload_to='images', width="200", height="200")

我希望能够在上传和保存图像时在字段中设置参数。我查看了 django 文档,但找不到任何关于如何执行此操作的信息。所以基本上,我希望能够在处理上传表单并保存对象时控制图像上传到哪里以及宽度和高度参数。

我正在使用 Django 1.2

任何帮助将不胜感激:)

【问题讨论】:

    标签: python django file-upload django-forms filefield


    【解决方案1】:

    您不需要自定义字段。正如the documentation 所示,upload_to 可以是一个可调用对象,它被传递给实例并返回一个决定字段保存位置的路径。

    我不确定您所说的宽度和高度参数是什么意思。在任何情况下,这些都是从图像中计算出来的。如果在字段定义中指定height_fieldwidth_field,则上传图片时对应的字段会填充图片的高宽值。

    【讨论】:

    • 我会调查“upload_to”。我想要做的是能够单独指定上传图像的宽度和高度。我知道我可以劫持字段保存方法来做到这一点,但我希望能够在每次上传图片时指定尺寸,因为它们会根据上传到的“相册”而变化。
    【解决方案2】:

    您可以使用 location 属性更改 FileField 的存储。

    form_name.photo.storage.location = upload_dir_path      
    

    它适用于 FileField,如果您继承 Django 的 ImageField,它也许也适用于您的自定义图像字段。

    【讨论】:

      【解决方案3】:

      所有上传信息:

      http://docs.djangoproject.com/en/dev/topics/files/

      以及调整大小的信息

      resize image on save

      希望对你有帮助

      编辑: 我认为你只需要:http://code.google.com/p/django-stdimage/ 但我不知道它是否适用于当前版本。

      【讨论】:

        猜你喜欢
        • 2021-10-20
        • 2018-08-01
        • 2019-06-21
        • 1970-01-01
        • 2016-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-07
        相关资源
        最近更新 更多