Django自定义图像上传字段,带有动态路径

时间:2011-01-27 10:25:17

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

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

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

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

我正在使用Django 1.2

非常感谢任何帮助:)

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

form_name.photo.storage.location = upload_dir_path      

它适用于FileField,如果你继承了Django的ImageField,它也可能适用于你的自定义图像字段。

答案 2 :(得分:0)

上传的所有信息:

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

和有关调整大小的信息

resize image on save

我希望它有所帮助

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