如何查询用户评论过的文章?

How to query articles a user has commented on?

我想获取所有有用户评论但文章本身是别人创建的文章。

以下是模型:

class Article(models.Model):
    title = models.CharField(max_length=300, blank=False)
    body = models.TextField(max_length=10000, blank=False)
    created = models.DateTimeField(auto_now_add=True)
    creator = models.ForeignKey(User, blank=True, null=True)
    updated = models.DateTimeField(auto_now=True)

class Comment(models.Model):
    title = models.CharField(null=True, blank=True)
    created = models.DateTimeField(auto_now_add=True)
    creator = models.ForeignKey(User, null=True)
    updated = models.DateTimeField(auto_now=True)
    article = models.ForeignKey(Article)
    body = models.TextField(max_length=10000)
    published = models.BooleanField(default=True)

我使用的查询是:

mycomments = Article.objects.filter(Q(comment__creator=request.user) and ~Q(creator=request.user)).order_by("-created")[:30]

但由于某种原因 returns 很多文章中的用户未发表评论。所以我想知道正确的查询集应该是什么?

Article.objects.filter(comment__creator=request.user) \
               .exclude(creator=request.user).distinct()