Python 将特定对象(但类型相同)附加到Django中的筛选对象
如果我得到一个像这样的Python 将特定对象(但类型相同)附加到Django中的筛选对象,python,django,django-queryset,Python,Django,Django Queryset,如果我得到一个像这样的User对象列表 special_user_list = User.objects.filter( userprofile__user_type = 'special' ) 我如何附加也是用户的request.user(当前登录的用户) 我知道我可能会做类似的事情 special_user_list = User.objects.filter( Q( userprofile__user_type = 'special' ) | Q( pk = reques
User
对象列表
special_user_list = User.objects.filter( userprofile__user_type = 'special' )
我如何附加也是用户的request.user
(当前登录的用户)
我知道我可能会做类似的事情
special_user_list = User.objects.filter(
Q( userprofile__user_type = 'special' ) |
Q( pk = request.user.pk )
)
但是我不确定上面的代码是否会双重包含request.user
(如果request.user.get\u profile()。user\u type='special'
)。另外,我希望避免使用复杂的SQL语句来添加用户,因为我已经知道用户的身份。数据库这样做比Python这样做更便宜
special_user_list = User.objects.filter(
Q(userprofile__user_type='special') |
Q(pk=request.user.pk)
).distinct()
真正地过滤查询集不仅仅是一个列表吗?我不能使用Python的append()
?不行。经过过滤的QuerySet
仍然是QuerySet
。它的表示看起来就像一个列表。Ignacio,我想@hobbes3不需要在这里执行.distinct()
,因为只剩下一个了,可能没有。但我的判决有效。