Django自定义管理器get_queryset()不工作

2024-09-26 18:04:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我不能让我的客户经理工作。。。在

class PublicArtigoManager(models.Manager):
    def get_queryset(self):
        return super(PublicArtigoManager, self).get_queryset().filter(data_publicacao__lte=timezone.now()).filter(permissao__lte=3)

class Artigo(models.Model):
    ...
    objects = models.Manager()
    publics = PublicArtigoManager()

当我在shell中测试时,它不起作用

^{pr2}$

Artigo.publics.count()应该返回9959,对吗?有什么问题吗?在


Tags: selfgetreturnmodelsdefmanagerfilterclass
1条回答
网友
1楼 · 发布于 2024-09-26 18:04:22

我确信问题出在get_query_set方法上。This is the doc for version 1.5经理,上面写着:

You can override a Manager‘s base QuerySet by overriding the Manager.get_query_set() method. get_query_set() should return a QuerySet with the properties you require.

试着用get_query_set代替{},这就是{a2}中对它的解释:

You can override a Manager‘s base QuerySet by overriding the Manager.get_queryset() method. get_queryset() should return a QuerySet with the properties you require.

如果您想100%肯定该方法在您的版本中是如何命名的,只需转到django/db/models/manager.py中的Manager类定义,并搜索该方法在类中是如何命名的。在

希望有帮助!在

相关问题 更多 >

    热门问题