2016-11-16 8 views
0

データベースからランダムなImageFieldを選択し、その結果を10秒間キャッシュに保存し、それを自分のテンプレートの1つに表示します。何らかの理由で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 }}"> 

は私が間違って何をしているのですか?

答えて

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} 
+0

まだリフレッシュするたびに、同じ画像が表示されます。 –

関連する問題