私はDjangoManagersを手に入れているところですが、このタイプのプログラミングをしていることに気づきました。明らかな繰り返しを取り除く方法があるかどうかを調べています。get_query_set
自分自身を参照するために使用を定義する必要があると思いますか?
私の質問を非常に明確にすること。フィルタリングの対象となる行を把握するために、サブディビジョンを繰り返し渡す必要があります。それが何であるかわからないもっと簡単な方法があると思います。
見てくれてありがとう!
--- models.py
class Subdivision(models.Model):
objects = SubdivisionManager()
--- manager.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)