簡體   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