[英]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.