status
の一部を隠しているCompany
モデルがあります。したがって、ユーザがCompany.objects.all()
に問い合わせると、私は不適切とみなされる特別なstatus
のいずれかを除外します。モデルマネージャーのDjango Querysetからkwargsフィルターを取得
class FilteredCompanyManager(models.Manager):
def get_queryset(self):
return super(FilteredCompanyManager, self).get_queryset().exclude(status__in=CompanyConstants.SPECIAL_STATUS.values())
私の質問は、私がCompany.objects.filter(displayAllObjects=True)
のようなものは、任意のステータスを除外しないようにしたいということです
class Company(models.Model):
name=models.TextField()
status=models.CharField()
...
objects = FilteredCompanyManager()
以下のような 何か。だから私の改正架空FilteredCompanyManager
は、私は私はおそらく2つのモデル管理者とobjects=FilteredCompanyManager
とallObjects=models.Manager()
でそれを行うが、単一のモデルマネージャではなくその可能な方法をしたいことを知って
class FilteredCompanyManager(models.Manager):
def get_queryset(self):
if 'displayAllObjects' in super(FilteredCompanyManager, self).get_queryset().get_kwargs():
return super(FilteredCompanyManager, self).get_queryset()
else:
return super(FilteredCompanyManager, self).get_queryset().exclude(status__in=CompanyConstants.SPECIAL_STATUS.values())
ようになります。