幅 400px の画像をアップロードし、200px と 100px の 2 つの画像を取得したいと考えています。私はググったところ、django-imagekitはこれができるようです。
だから私imagekit
は INSTALLED_APPS に追加し、これを私のモデルに追加しました:
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFit
class Bookmaker(models.Model):
...
logo_large = models.ImageField(upload_to="logo/large")
logo_medium = ImageSpecField([ResizeToFit(width=200)], source='logo_large', options={'quality': 90})
logo_small = ImageSpecField([ResizeToFit(width=100)], source='logo_large', options={'quality': 90})
そして、これは私のフォームです:
@staff_member_required
def new(request):
if request.method == 'POST':
form = BookmakerForm(request.POST, request.FILES)
if form.is_valid():
form.save()
else:
form = BookmakerForm()
template = loader.get_template('bookmaker/new.html')
context = RequestContext(request, {
'form': form,
})
return HttpResponse(template.render(context))
ドキュメントを確認しましたが、imagekit の仕組みを理解できませんでした。アプリで CACHE をセットアップする必要がありますか? フォルダに物理的にファイルを作成しMEDIA
ますか?
さて、私のセットアップは機能しません。画像をアップロードするとlogo_large
、大きなファイルが作成されますが、そうではlogo_small
ありlogo_medium
ません。印刷{{bookmaker.logo_small}}
するとmedia/CACHE/images/logo/large/bookmaker/24d9f99ffdf277ed3fc25e2cf4d37554.jpg
、存在しない が表示されます (404)。動作させるために CACHE をセットアップする必要がありますか?