3

Django アプリのモデルに画像を追加しようとしています。

models.py

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

開発モードでは、Django 管理者経由で画像をアップロードしようとするたびに、次のようになります。

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

アップロードしようとしている jpg は os X Preview で表示できるので有効なようです。

Python Imaging Library が画像として認識しないことが問題のようです。なぜそれが有効な画像で起こっているのでしょうか?

PIL がインストールされ、Django シェル経由で検証されます。

4

3 に答える 3

12

Djangoのソースコードによると。これらの 3 行は、イメージの検証を担当します。

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

イメージ タイプが PIL でサポートされていない可能性があります。対応フォーマット一覧はこちら

于 2009-09-02T16:30:35.993 に答える
2

gif や png などの画像形式をアップロードしようとしましたか? PIL が jpeg lib で適切にビルドされていない可能性があります。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、Django のソースを調べました。ImageFieldDjango は実際に PIL を使用して、イメージがいつ有効かを判断します。

于 2009-09-02T16:32:53.977 に答える