1

幅 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 をセットアップする必要がありますか?

4

2 に答える 2