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