2016-05-05 4 views
0

データベースクエリに基づいて設定された変数がありますが(約6ヶ月ごとに変更されます)、データベースを照会するのは非常に非効率ですそれを必要とする。私はこれを処理するより効率的な方法がなければならないと確信しています。コンテキストプロセッサ、多分?django startで変数を設定し、すべてのビューで使用できるようにします

class RegistrationQuerySet(models.QuerySet): 

    def active_period(self): 
     try: 
      active_period = AcademicPeriod.objects.is_active()[0] 
      return self.filter(academic_period=active_period) 
     except: 
      return self 

答えて

1

Database access optimisationまたはcaching APIについてのドキュメントを見てみましょう:

現在のコアは、私は現在、私のデータベース内のすべてのレジスタに一回active_periodを呼び出し、次のようになります。

from django.core.cache import cache 

class RegistrationQuerySet(models.QuerySet): 

    def active_period(self): 
     try: 
      active_period = cache.get('active_period') 
      if not active_period: 
       active_period = AcademicPeriod.objects.is_active()[0] 
       cache.set('active_period', active_period) 
      return self.filter(academic_period=active_period) 
     except: 
      return self 
関連する問題