2011-07-30 24 views
0

私はモデルに画像フィールドを持っています。その画像の2つのコピー(サイズ変更)を別の2つのフィールド(thumb_bigとthumb_small)に作成する必要があります。 Thumb_bigの幅は225px、高さは何でもかまいません。 thumb_smallは65x50ピクセルです。ジャンゴ画像の変更、ある画像フィールドから他の画像へ

私は検索しましたが、何も私の問題に収まらないようです。私はPILをインストールしました。試したdjango-imagekit、その他のスナイプット。

あなたも素晴らしいことがあるリンクを知っていれば、私はdjango初心者ですが、あなたはすでにそれを前提としていますか?

は、ここで私はあなたがデータベース内にサムネイルパスを格納する必要があるだろう、なぜ非常にわからないんだけど、私のモデル

class Photo(models.Model): 
    title = models.CharField(max_length=500) 
    pub_date = models.DateField(auto_now_add=True) 
    mod_date = models.DateField(auto_now=True) 
    slug_name = models.SlugField(max_length=500) 
    image = models.ImageField(upload_to='interview', blank=True) 
    thumb_big = models.ImageField(upload_to= 'interview/thumbs_big', blank=True) 
    thumb_small = models.ImageField(upload_to= 'interview/thumbs_small', blank=True) 
    category = models.CharField(max_length=200, blank=True) 
    details = models.TextField() 

    def __unicode__(self): 
     return self.title 

答えて

1

です。 いくつかのdjangoサムネイルアプリケーションがあります。 私のお気に入りの2つは、次のとおりです。

それらの両方が、その場でサムネイルを生成するためのテンプレートタグを使用して して表示されていますあなたのdjangoテンプレートで。

彼らはまた、サムネイル管理を容易にするためのカスタムデータベースフィールドが付属して

http://thumbnail.sorl.net/examples.html#model-examples http://packages.python.org/easy-thumbnails/usage.html#models

あなたが本当にパスを保存する必要がある場合モデルのサムネイルには、画像アップロードビューで両方のサムネイルを生成し、結果のファイルパスを対応するデータベースフィールドに割り当てることができます。簡単なサムネイルでは次のようになります:

photo = form.save() 
from easy_thumbnails.files import get_thumbnailer 
thumbnailer = get_thumbnailer(photo.image) 
thumb = thumbnailer.get_thumbnail({'size': (100, 100)}) 
photo.thumb_big = thumb.name 
photo.save() 
+0

私のモデルや他の場所でこれを書かなければならないのはどこですか? – themunna

+0

ビューで、フォームが有効であることを確認した後。 Djangoのフォームで作業するための標準的な流れは、次のようになります。http://www.djangobook.com/en/2.0/chapter07/#b150 –

+0

この記事を書いた直後、私は簡単なサムネイルを見つけました。私はそれを使用した。おそらく私は今のところ自分自身を書くつもりはないだろう。 – themunna

関連する問題