我在MessageAdmin中有这样的功能:
def queryset(self, request):
user_profile = UserProfile.objects.get(user = request.user.id)
return Message.objects.all().filter(groups__in = [group_obj.id for group_obj in user_profile.group.all()])
我想返回与User具有相同组的所有邮件。但是使用这种结构,如果User有多个组,所有消息都会返回两次 - 所以当我尝试打开任何消息时,我都会收到错误。
编辑:UserProfile是User模型的扩展,我用ManyToManyField存储所有组。
答案 0 :(得分:1)
我认为你需要:
Message.objects.filter(groups__in = [group_obj.id for group_obj in \
user_profile.group.all()]).distinct()