我有模型Comment
:
class Comment(models.Model):
upload = models.ForeignKey(Upload, related_name='comments', on_delete=models.CASCADE)
user = models.ForeignKey(get_user_model(), related_name='comments', on_delete=models.CASCADE)
text = models.TextField(blank=False, null=False)
date_created = models.DateTimeField(auto_now_add=True)
而且我还有一个模型BlockedUser
:
class BlockedUser(models.Model):
blocked_by = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name="blocked_by")
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
date_created = models.DateTimeField(auto_now_add=True)
我如何获取所有被阻止的人写的评论以外的所有评论?
queryset = Comment.objects.all().select_related('user')
queryset = queryset.exclude(user__in=BlockedUser.objects.filter(blocked_by=self.request.user))
显然不是那样工作的,但是我不确定如何编写它才能工作。
您可以从Comment
和user
存在BlockedUser
的blocked_by
中排除request.user
: