Django缓存显示图像问题
问题描述:
我从数据库中随机选取ImageField并将其结果保存在缓存中10秒,并将其显示在我的一个模板中。出于某种原因10秒后,我没有看到不同的图像,这是我的目标。我正在使用memcache。我基于类视图get_context_data(个体经营,** kwargs)的Django缓存显示图像问题
部分:
...
dummy_images = DummyImage.objects.all()
dummy_images_counter = DummyImage.objects.all().count()
random_image = get_object_or_404(DummyImage, pk=dummy_images[random.randrange(0, dummy_images_counter)].id)
cache.set('image', random_image, 10)
context = {'width': width, 'height': height, 'img': cache.get('image')}
模板:
{% load static %}
<img src="{% static "dummy_images/images/" %}{{ img.image.url }}" width="{{ width }}" height="{{ height }}">
我在做什么错?
答
您在每次执行中都设置了cache
。在此之前做一次检查。
cached_image = cache.get('image')
if not cached_image:
random_image = get_object_or_404(DummyImage, pk=dummy_images[random.randrange(0, dummy_images_counter)].id)
cache.set('image', random_image, 10)
cached_image = random_image
context = {'width': width, 'height': height, 'img': cached_image}
仍然每当我刷新它显示相同的图片。 –