我正在寻找一种方法来筛选具有相同M2M字段查询集的相同类型的所有对象。
class Comment(models.Model):
user = models.ForeignKey(User, related_name='comment_user')
content = models.CharField(max_length=5000, null=True)
private_to = models.ManyToManyField(User, null=True, related_name='private_to')
给定一个评论对象,我想检索具有相同M2M字段的所有其他评论(即如果private_to字段返回用户1和用户2作为评论,它将找到包含这两个评论的所有其他评论private_to字段中的用户。)
是否有简洁的内置方式来执行此操作?
答案 0 :(得分:0)
尝试this post中的内容:
comment = Comment.objects.all()[0] # Or the comment you want to filter by.
private_to_ids = list(comment.private_to.all().values_list('id', flat=True))
comments = Comment.objects.filter(private_to__exact=private_to_ids)