Использование необработанного набора запросов внутри пользовательского запроса модели - PullRequest
0 голосов
/ 14 мая 2018

Я хочу использовать необработанный набор запросов внутри пользовательского набора запросов модели.

Проблема в том, что мне нужно использовать / объявить модель, основанную на наборе запросов, до объявления класса модели.

Могу ли я объявить замену модели, которая будет интерпретироваться во время выполнения?

Итак, код такой:

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 голосов
/ 14 мая 2018

Просто используйте 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()
...