从不与其他过滤器相结合的外国主要用户开始过滤



我有以下模型:

class Post(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='activity',
 sent_at = models.DateTimeField(blank=True, null=True) on_delete=models.CASCADE)

我需要一个查询,以排除所有非人员并发送的用户为null。

所以我尝试使用排除:

Post.object.all().exclude(user.is_staff=True)

我会收到以下错误:

keyword can't be an expression

在QuerySet的参数中,要访问您需要使用__而不是.的模型属性:

Post.object.all().exclude(user__is_staff=True)

要排除null值,您可以使用isnull

Post.object.all().exclude(user__is_staff=True, sent_at__isnull=True)

最新更新