django-imagekit 最小设置不起作用
django-imagekit minimal setup not working
我想上传宽度为 400 像素的图片并获得另外两张图片 - 200 像素和 100 像素。我用谷歌搜索 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 的工作原理。我需要在我的应用程序中设置缓存吗?它会在 MEDIA
文件夹中创建物理文件吗?
那么我的设置不起作用。当我上传图片 logo_large
时,会创建大文件,但 logo_small
和 logo_medium
不会。如果我打印 {{bookmaker.logo_small}}
,我得到 media/CACHE/images/logo/large/bookmaker/24d9f99ffdf277ed3fc25e2cf4d37554.jpg
,它不存在 (404)。我是否需要设置 CACHE 才能使其正常工作?
您需要在模板中使用 {{ bookmaker.logo_small.url }}
来获取图像的 URL。然后将创建图像并将其存储在 CACHE
文件夹中。
嗯,现在可以了。我什么也没有做过。可能只需要一些时间来生成那些图像(我不知道生成图像需要什么),可能重启./manage.py runserver
就足够了。
我可能需要在每次上传后调用 ./manage.py generateimages
吗?
我想上传宽度为 400 像素的图片并获得另外两张图片 - 200 像素和 100 像素。我用谷歌搜索 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 的工作原理。我需要在我的应用程序中设置缓存吗?它会在 MEDIA
文件夹中创建物理文件吗?
那么我的设置不起作用。当我上传图片 logo_large
时,会创建大文件,但 logo_small
和 logo_medium
不会。如果我打印 {{bookmaker.logo_small}}
,我得到 media/CACHE/images/logo/large/bookmaker/24d9f99ffdf277ed3fc25e2cf4d37554.jpg
,它不存在 (404)。我是否需要设置 CACHE 才能使其正常工作?
您需要在模板中使用 {{ bookmaker.logo_small.url }}
来获取图像的 URL。然后将创建图像并将其存储在 CACHE
文件夹中。
嗯,现在可以了。我什么也没有做过。可能只需要一些时间来生成那些图像(我不知道生成图像需要什么),可能重启./manage.py runserver
就足够了。
我可能需要在每次上传后调用 ./manage.py generateimages
吗?