Менеджер перезаписи в Django с использованием django-cache-machine

Поскольку https://github.com/jbalogh/django-cache-machine переопределяет атрибут модели объектов, правильный способ изменить набор запросов заключается в следующем:

class ModelAQuerySet(models.query.QuerySet):
    def foo(self):
        return self.filter(name='foo')

class ModelAManager(base.CachingManager):
    def __init__(self):
        super(ModelAManager, self).__init__()

    def get_query_set(self):
        return ModelAQuerySet(self.model, using=self._db)

    def foo(self):
        return self.get_query_set().foo()

class ModelA(base.CachingMixin, models.Model):
    #fields ...
    objects = ModelAManager()

Мы можем objects = base.CachingManager в какой-то модели. Это означает, что CachingManager уже наследует от models.Manager сам. Поэтому мы просто создаем модель, которая наследуется от base.CachingManager. Правильно?

Это правильный способ сделать это?

0 ответов

Другие вопросы по тегам