Я младший разработчик. Я хочу создать менеджеров для Django Groups. Один новый и тот, который переопределит менеджер по умолчанию
РЕДАКТИРОВАТЬ: Django 1.8, python 2.7.15
Мои менеджеры:
class DefaultGroupManager(models.Manager):
def get_queryset(self):
test_ids = Test.objects.values_list('rel_group_id', flat=True)
return super(DefaultGroupManager, self).get_queryset().exclude(id__in=test_ids)
class AllGroupsManager(models.Manager):
def get_queryset(self):
return super(AllGroupsManager, self).get_queryset().exclude(rel_group__start_date__lte=datetime.now()-timedelta(days=30))
С этими менеджерами я создал что-то вроде этого:
dgm = DefaultGroupManager()
agm = AllGroupsManager()
agm.contribute_to_class(Group, 'get_all')
dgm.contribute_to_class(Group, 'objects')
И это работало. Я мог бы использовать Group.get_all.all()
и новый Group.objects.all()
. Взамен у меня были правильные списки объектов.
Но мой старший разработчик сказал, что я должен сделать это, создав новую модель Group, которая наследуется от Group. Итак, я сделал:
Модель моей группы:
class GroupModel(Group):
get_all = DefaultGroupManager()
objects = AllGroupsManager()
Но это не работает!
Когда я использую GroupModel.get_all.all()
или переопределяем GroupModel.objects.all()
, он возвращает пустой список []
вместо списка с множеством объектов.
Все вроде бы хорошо :(
Буду признателен за любую помощь!