在Django queryset中按类型筛选?

2024-04-29 16:09:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在需要检查外键类型的地方创建一个自定义查询集。 下面的代码可以工作,但对我来说似乎不是最佳的:

class BadgeQuerySet(models.QuerySet):

    def linked_to_convive(self):
        pks_badges_linked_to_convive = [badge.pk for badge in Badge.objects.all()
                                        if badge.owner and
                                        type(badge.owner.profile) == Convive]

        return self.filter(pk__in=pks_badges_linked_to_convive)

我浏览了Django doc,没有找到这样的内容:

Badge.objects.filter(owner__profile__type=Convive)

  • 问题1:为什么Django不提供这种工具?在
  • 问题2:有没有办法改进我的工作代码,使之更简单?在

谢谢。在


Tags: to代码inbadgeselfobjectstypeprofile