【发布时间】:2018-08-28 23:13:57
【问题描述】:
class CustomManager(models.Manager):
def get_query_set(self):
queryset = super(CustomManager, self).get_query_set()
return queryset.filter(
models.Q(expiration_date__gte=datetime.date.today()) |
models.Q(
expiration_date__gte=datetime.date.today() - datetime.timedelta(days=40),
is_invoice_emailed=True
)
)
class Subscription(models.Model):
....
objects = CustomManager()
default = models.Manager()
当我访问Subscription.objects.all() 时,它会返回 db 中的所有记录而不进行过滤。但是,如果我使用下面的查询
queryset = Subscription.objects.all()
queryset.filter(
models.Q(expiration_date__gte=datetime.date.today()) |
models.Q(
expiration_date__gte=datetime.date.today() - datetime.timedelta(days=40),
is_invoice_emailed=True
)
)
它正在返回过滤结果。为什么?
我正在使用 django==1.11.11、python2.7 和 db Postgresql
请帮忙。谢谢。
【问题讨论】:
-
如果第二个经理不是分配给
default而是另一个名字会怎样?
标签: django postgresql python-2.7 django-managers