簡體   English   中英

Django Manager for Group模型不起作用-返回空的查詢集

[英]Django Manager for Group model does not work - returns empty queryset

我是初級開發人員。 我想為Django組創建管理員。 一個新的將覆蓋默認管理器的一個: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()它返回空列表[]而不是帶有對象加載的列表。

一切似乎都很好:(

我將不勝感激!

如果要定義一個新類,則肯定要使其成為Group的代理 否則它將有自己的數據庫表,如您所見,該表中沒有任何數據。

class GroupModel(Group):
    get_all = DefaultGroupManager()
    objects = AllGroupsManager()

    class Meta:
        proxy = True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM