首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当模型没有外来对象或外域时,Django过滤器等于

当模型没有外来对象或外域时,Django过滤器等于
EN

Stack Overflow用户
提问于 2022-03-07 10:53:15
回答 1查看 130关注 0票数 1

我有两种型号的CommunityUserCommunity

社区模型

代码语言:javascript
复制
class Community(models.Model):

    # Community name
    name = models.CharField(max_length=64)
    slug = models.CharField(max_length=40, blank=True)
    admins = models.ManyToManyField(
        settings.AUTH_USER_MODEL, related_name="admins", blank=True
    )
    admins = models.ManyToManyField(
        settings.AUTH_USER_MODEL, related_name="admins", blank=True
    )
    members = models.ManyToManyField(
        settings.AUTH_USER_MODEL,
        related_name="members",
        blank=True,
    )
    ------

UserCommunityModel

代码语言:javascript
复制
class UserCommunity(models.Model):

    user = models.ForeignKey(
        settings.AUTH_USER_MODEL, on_delete=CASCADE, related_name="user"
    )
    group = models.ForeignKey(
        Community, on_delete=CASCADE, related_name="group")
    role = models.CharField(max_length=15, blank=True, null=True)
    # True is in community, false is not in community
    active = models.BooleanField(null=True, blank=True)

我需要获得所有的社区对象,如果用户不是社区的一部分,社区至少应该有1名成员。

我试过用这个

代码语言:javascript
复制
Community.objects.filter(group__user=request.user.id, group__active=False,state=location.state, group_discoverability="public").exclude(
        hofAdmins__isnull=True, admins__isnull=True, members__isnull=True)[:10]

但这将返回具有UserCommunity对象的社区,在用户加入社区时创建UserCommunity对象。任何帮助都将不胜感激,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-08 07:23:15

代码语言:javascript
复制
Community.objects.filter(~Q(members__in=[request.user.id]), ~Q(hofAdmins__in=[request.user.id]), ~Q(admins__in=[request.user.id]), state=location.state, group_discoverability="public").exclude(         hofAdmins__isnull=True, admins__isnull=True, members__isnull=True)[:10]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71379952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档