我的django数据库有一个模式名称照片。并且View有一个方法get_photos会列出所有照片。并有一个upload_photo来将照片添加到表格。
问题在于说。
我该如何解决这个问题。谢谢 。
bellow是get_all_photos的视图方法
@csrf_exempt
def photos(request):
if request.method == 'POST':
start_index = request.POST['start_index']
else:
start_index = request.GET['start_index']
start_index=int(start_index.strip())
photos_count = Photo.objects.all().count()
allphotos = Photo.objects.all().order_by('-publish_time')[start_index: start_index+photo_page_step]
retJson = {}
retJson["code"]=200 #ok
data = {}
data["count"]=photos_count
photos = []
for p in allphotos:
photo = json_entity.from_photo(p,True);
photos.append(photo)
data["photos"]=photos
retJson["data"]=data
return HttpResponse(simplejson.dumps(retJson), mimetype="application/json")
答案 0 :(得分:0)
我想你可以在这里做几件事。首先,您可以将@never_cache装饰器添加到get_photos视图中:
from django.views.decorators.cache import never_cache
@never_cache
def get_photos(request):
...
这永远不会缓存可能适合您情况的页面。或者,您可以缓存照片,然后在上传新照片时使缓存失效:
from django.core.cache import cache
def get_photos(request):
photos = cache.get('my_cache_key')
if not photos:
# get photos here
cache.set('my_cache_key', photos)
....
def upload_photo(request):
# save photo logic here
cache.set('my_cache_key', None) # this will reset the cache
可能是never_cache解决方案已经足够但我想将上面的内容作为提示包括在内:)