我只是得到Django Managers我的手,我發現自己正在做這種類型的編程。我期待看看是否有辦法消除明顯的重複..我相信我需要定義使用get_query_set
來指代我自己?Django經理或更好的計劃
對我的問題要非常清楚。我重複地不得不通過細分以找出要過濾的行。我認爲有一種更簡單的方法,我只是不確定它是什麼。
感謝您的期待!
--- models.py
class Subdivision(models.Model):
objects = SubdivisionManager()
--- managers.py
class SubdivisionManager(models.Manager):
"""A generic manager with metros"""
def is_metro_sample_eligible(self, subdivision_id):
"""Are we eligible for sampling taking into account the 90 day windows"""
from .models import Subdivision
subdivision = Subdivision.objects.get(id=subdivision_id)
return True
def get_available_subdivisions(self, subdivision_id):
"""Return all potential subdivisions for a builder in a metro"""
from .models import Subdivision
subdivision = Subdivision.objects.get(id=subdivision_id)
return self.filter(builder_org=subdivision.builder_org,
metro=subdivision.metro)
def get_available_sampling_subdivisions(self, subdivision_id):
"""Return Subdivision which are able to participate in metro sampling"""
from .models import Subdivision
subdivision = Subdivision.objects.get(id=subdivision_id)
return self.filter(builder_org=subdivision.builder_org,
metro=subdivision.metro,
use_sampling = True,
use_metro_sampling = True)
在第一個代碼塊中有'SubdivisionManager',但第二個代碼中有'SubdivisionMetroManager'。這是一個錯字嗎?另外,'is_metro_sample_eligible'似乎缺乏回報。 – 2012-02-18 10:02:51
你是對的!中游修改 - 抱歉回合! – rh0dium 2012-02-18 14:22:38