在自定义模型查询集中使用原始查询集

时间:2018-05-14 08:02:30

标签: django django-models django-queryset

我想在自定义模型查询集中使用原始查询集。

问题是我需要在声明模型类之前使用/声明基于查询集的模型。

我可以声明模型的替代品,它将在执行时被解释吗?

所以,代码是这样的:

class EntityModelQuerySet(models.query.QuerySet):

    def search_by_item(self, id__list):

            qs = Entity.objects.raw(


.............

class Entity

使用prefetch_related

的第二个模型怎么样?
qs = Entity.objects.raw( .. queryset = .prefetch_related(
            Prefetch('item',
                     queryset=EntityItem.objects.all().only(name)

1 个答案:

答案 0 :(得分:1)

只需使用self.raw(...)代替Entity.objects.raw()

class EntityModelQuerySet(models.QuerySet): # use models.QuerySet
    def search_by_item(self, id__list):
        qs = self.raw(...)
        return qs

class Entity(models.Model):
     objects = EntityModelQuerySet.as_manager()