Django - CustomQuerySet работает только в объектах - PullRequest
0 голосов
/ 05 мая 2019

Я использую CustomQuerySet, используя Пользовательский QuerySet и Manager, не нарушая DRY? . Я могу получить доступ только к пользовательским функциям, используя objects. Вот мой код:

class CustomQuerySetManager(models.Manager):
    """A re-usable Manager to access a custom QuerySet"""
    def __getattr__(self, attr, *args):
        print(attr)
        try:
            return getattr(self.__class__, attr, *args)
        except AttributeError:
            # don't delegate internal methods to the queryset
            if attr.startswith('__') and attr.endswith('__'):
                raise
            return getattr(self.get_query_set(), attr, *args)

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


class SampleModel(models.Model):
    objects = CustomQuerySetManager()

    class QuerySet(models.QuerySet):
        def test(self):
            print("test function was callsed")

С этим это происходит:

SampleModel.objects.test() # This works
SampleModel.objects.all().test() # This doesnt works...

Почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...