【发布时间】:2010-11-21 10:59:36
【问题描述】:
好的,我已经尝试了几乎所有的东西,但我无法让它工作。
- 我有一个带有 ImageField 的 Django 模型
- 我有通过 HTTP 下载图像的代码(经过测试且有效)
- 图像直接保存到“upload_to”文件夹中(upload_to 是在 ImageField 上设置的那个)
- 我需要做的就是将已经存在的图像文件路径与 ImageField 关联起来
我用 6 种不同的方式编写了这段代码。
我遇到的问题是我编写的所有代码都会导致以下行为: (1) Django 将创建第二个文件,(2) 重命名新文件,在文件名的末尾添加一个 _,然后 (3) 不传输任何数据,而将其基本上保留为一个空的重命名文件。 'upload_to' 路径中剩下 2 个文件,一个是实际图像,一个是图像名称,但为空,当然 ImageField 路径设置为 Django 尝试创建的空文件.
如果不清楚,我将尝试说明:
## Image generation code runs....
/Upload
generated_image.jpg 4kb
## Attempt to set the ImageField path...
/Upload
generated_image.jpg 4kb
generated_image_.jpg 0kb
ImageField.Path = /Upload/generated_image_.jpg
如何在不让 Django 尝试重新存储文件的情况下做到这一点?我真正想要的是这种效果......
model.ImageField.path = generated_image_path
...但是这当然行不通。
是的,我已经解决了这里的其他问题,例如 this one 以及 File 上的 django 文档
更新 经过进一步测试,它只有在 Windows Server 上的 Apache 下运行时才会出现这种行为。在 XP 上的“运行服务器”下运行时,它不会执行此行为。
我被难住了。
这是在 XP 上成功运行的代码...
f = open(thumb_path, 'r')
model.thumbnail = File(f)
model.save()
【问题讨论】:
-
另一个很棒的 Django 问题。我已经做了几次尝试来解决这个问题,但没有成功。在上传目录中创建的文件已损坏,与原始文件(存储在其他位置)相比,其大小只有一小部分。
-
您的更新不起作用
标签: python django django-models