Django缓存显示图像问题

时间:2016-11-16 17:37:12

标签: python django python-2.7 memcached

我从数据库中选择随机ImageField并将其结果保存在缓存中10秒钟,并将其显示在我的一个模板中。出于某种原因,10秒后我没有看到不同的图像,这是我的目标。我正在使用memcache。

基于类视图的get_context_data(self,** kwargs)的一部分:

    ...
    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 }}">

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您在每次执行中都设置了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}