我有以下模型:
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)