【问题标题】:Model Manager queryset not filtering模型管理器查询集未过滤
【发布时间】:2013-03-05 15:58:06
【问题描述】:

我有一个代理模型,其查询集是其父模型的子集。但是,当我调用它时,会返回父对象。

Model Manager

class NewRequestsManager(models.Manager):        
    def get_queryset(self):
        return super(NewRequestsManager, self).get_queryset().filter(is_scoped=0)

代理模型

class NewRequests(Engagement):
    objects = NewRequestsManager()

    class Meta:
        proxy = True
        app_label = 'myapp'
        verbose_name = 'New Request'

查看

def list(request):
    new_requests = NewRequests.objects.all()
    c = RequestContext(request, {
            'cl': new_requests,
    })
    t = loader.get_template('queue.html')
    return HttpResponse(t.render(c))

非常感谢任何帮助。我不确定我在这里缺少什么。

【问题讨论】:

    标签: django django-models django-views


    【解决方案1】:

    可能只是一个错字:get_queryset 应该是 get_query_set,所以你没有覆盖任何东西。

    class NewRequestsManager(models.Manager):        
        def get_query_set(self):
            return super(NewRequestsManager, self).get_query_set().filter(is_scoped=0)
    

    【讨论】:

    • 谢谢瑞克。没有什么比因为一个错字而大吃一惊的了。
    【解决方案2】:

    不是错字:dev documentation 使用 get_queryset 而1.5 documentation 使用 get_query_set 我想开发版本最近发生了变化。

    【讨论】:

    • 哇,我降级了我的 django 以使其他东西正常工作,并且一直在努力解决这个问题 ><.>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 2018-12-30
    • 2020-08-02
    • 1970-01-01
    • 2023-04-11
    • 2016-01-13
    • 2022-12-05
    相关资源
    最近更新 更多