2017-08-22 14 views
0

私は私の意見にAPIからJSONを輸入しています。今は完全に正常に動作しますが、何とか私がウェブサイトに行くとどうにかしてdjangoはapiによって与えられた値をキャッシュしているので、最近の値は表示されません。私は "never_cache"と "キャッシュコントロール"を使用しようとしましたが、動作しませんでした。私はdjangoやApacheでできることはありますか?キャッシュを無効

マイビュー

from __future__ import unicode_literals 
from django.shortcuts import render 
from urllib import urlopen 
import json 
from django.views.decorators.cache import never_cache, cache_control 

response = json.loads(urlopen('http://api.fixer.io/latest').read()) 
usdollar = response['rates']['USD'] 

#@never_cache 
@cache_control(max_age=0, no_cache=True, no_store=True, must_revalidate=True) 
def home(request): 
    return render(request, "index.html", {"usdollar":usdollar}) 

答えて

0

瞬間、あなたはモジュールレベルであなたのAPIコールを作っています。つまり、モジュールがロードされたときに1回だけ実行されます。コードをビューに移動する必要があります。

#@never_cache 
@cache_control(max_age=0, no_cache=True, no_store=True, must_revalidate=True) 
def home(request): 
    response = json.loads(urlopen('http://api.fixer.io/latest').read()) 
    usdollar = response['rates']['USD'] 
    return render(request, "index.html", {"usdollar":usdollar}) 
+0

ありがとうございます – tbenji84

関連する問題