繁体   English   中英

具有SITE_ID的Django @cache_page(Site Framework)

[英]Django @cache_page with SITE_ID (Site Framework)

我正在使用Django的站点框架来运行多个网站,并且每个SITE_ID均基于当前城市数据。

以任何方式使用@cache_page以便Django将基于SITE_ID缓存正确的视图吗?

这不起作用,因为Django会在所有网站上返回相同的缓存值,而不考虑SITE_ID

@cache_page(24 * 60 * 60)
def my_page(request):
   myview = table.objects.filter(city_id=settings.SITE_ID)
   #...

您可以执行以下操作: 该行讨论了这一点

@cache_page(24*60*60, key_prefix="%s" % settings.SITE_ID) 
def my_page(request):
   myview = table.objects.filter(city_id=settings.SITE_ID)
   #...

或更好地缓存查询集,这更易于控制

def my_page(request):
   cities = cache.get('cities_%s' % settings.SITE_ID)
   if not cities: 
       cities = table.objects.filter(city_id=settings.SITE_ID)
       cache.set('cities_%s' % settings.SITE_ID, cities, 24*60*60)
   #...
   #...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM