3

我正在尝试将图像添加到我的 Django 应用程序中的模型中。

模型.py

class ImageMain(models.Model):
"""This is the Main Image of the product"""
    product = models.ForeignKey(Product)
    photo = models.ImageField(upload_to='products')

在开发模式下,每次我尝试通过 Django admin 上传图像时,我都会不断收到:

Upload a valid image. The file you uploaded was either not an image or a corrupted image.

我尝试上传的 jpg 可以使用 os X Preview 查看,因此它似乎是有效的。

似乎问题在于 Python 图像库无法将其识别为图像。为什么使用有效图像会发生这种情况?

PIL 已安装,通过 Django shell 进行验证。

4

3 回答 3

12

根据Django的源代码。这三行负责验证图像:

from PIL import Image
trial_image = Image.open(file)
trial_image.verify()

PIL 可能不支持图像类型。在此处查看支持的格式列表

于 2009-09-02T16:30:35.993 回答
2

您是否尝试上传 gif 或 png 等图像格式?可能是您的 PIL 未正确使用 jpeg 库构建。我在 Ubuntu 上遇到了与 Django 类似的问题。如果您曾经看到错误消息decoder jpeg not available,请查看此链接。链接中的相关行:

$ cd libImaging
$ ./configure --with-jpeg=/somelib/lib --with-zlib=/somelib/lib
于 2009-09-02T19:46:02.243 回答
0

django/forms/fields.py我在ImageField课堂上查看了 Django 源代码。Django 实际上确实使用 PIL 来确定图像何时有效。

于 2009-09-02T16:32:53.977 回答