django - 按用户过滤不是在另一个模型查询集中使用 Q 的人员

标签 django django-queryset django-q

我有以下模型:

class APC(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, related_name='apc', on_delete=models.SET_NULL)
  type= models.CharField(choices=TYPE_CHOICES, max_length=5, blank=True, null=True)

我想要获取具有两种特定类型之一的 APC 对象,并且用户不是员工。

我从以下开始:

apcs = APC.objects.filter(
        ~Q(user is staff),
        Q(type=TYPE_CHOICES_A) | Q(type=TYPE_CHOICES_B)
)

最佳答案

尝试在没有 Q 的情况下完成:

apcs = APC.objects.filter(user__is_staff=False, type__in=(TYPE_CHOICES_A, TYPE_CHOICES_B))

关于django - 按用户过滤不是在另一个模型查询集中使用 Q 的人员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52126176/

相关文章:

django - 如何从 Django View 获取计划的 Django-Q 任务列表

python - 从 Django Q 查询中弹出一个查询?

python - 使用 Django 的多个 ManyToMany 'in' 查询

css - 我的 CSS 和 JS 文件不适用于部署

python - Django注释,将多个相关值组合到同一个实例上

django - 为什么获取复杂聚合需要别名错误?

python - 是否可以过滤 Django 注释中的相关项目?

python - 在 Django 中显示漂亮的代码

在 Bootstrap Modal 中使用 django 清晰表单的 AJAX 反馈表单

python - 如何使用数据测试 Django 中的 get 请求?