Я перепробовал около 25 ссылок Stackoverflow, и похоже, что ни у кого нет работающего решения этой проблемы.
Я создал пользовательский набор запросов, подобный этому:
class ProjectQuerySet(models.QuerySet):
def get_active(self):
from apps.projectmanagement.models import Project
return self.filter(active=True)
class ProjectManager(models.Manager):
def get_queryset(self):
return ProjectQuerySet(self.model, using=self._db)
Это прекрасно работает, если я начну с модели, как
Project.objects.get_active()
Но если я захочу использовать это в отношениях, пока не повезет:
employee.projects.get_active()
Я всегда получаю эту ошибку:
AttributeError: у объекта «ManyRelatedManager» нет атрибута «get_active»
Что я пробовал до сих пор:
1) Я прочитал, что use_for_related_fields = True
в классе менеджера устарела. Все равно не работает на django v2.1
2) Добавим это в мою модель, так как половина интернета заявляет:
class Project(models.Model):
...
objects = ProjectManager()
class Meta:
base_manager_name = 'objects'
3) Попытка избежать RelatedManager
и работать с набором запросов:
employee.projects.all().get_active()
Есть идеи, что я делаю не так? И как бы я решил это? Не может быть слишком сложно, верно?
Thx!
Рон