如何更改过滤器的默认模型管理器(queryset?)

时间:2015-12-04 21:06:15

标签: python django django-rest-framework

我想更改django rest框架过滤器的默认模型管理器,我似乎无法找到一种方法。我的默认模型管理器objects排除了一些记录,我创建了objects_all来获取所有记录。过滤器似乎使用Model.objects而不是objects_all,有没有办法让我可以使用objects_all来进行过滤。

filters.py

import rest_framework_filters as filters

ItemFilter(filters.FilterSet):
    name = filters.AllLookupsFilter()
    some_id = filters.NumberFilter(name="some_name")

    class Meta:
        model = Item

models.py

class myModel(models.Model):
    objects_all = models.Manager() # Rename the default model manager
    objects = ObjectsWithNoStateManager()
    objects_deleted = ObjectsDeletedManager()
    objects_archived = ObjectsArchivedManager()

1 个答案:

答案 0 :(得分:0)

您似乎需要在ModelManager中添加额外的过滤器。为什么不在单个ModelManager中添加额外过滤器的方法,而不是为每个过滤器创建单独的管理器。

以下是示例https://docs.djangoproject.com/en/1.9/topics/db/managers/#adding-extra-manager-methods