0

如果我得到这样的User对象列表

special_user_list = User.objects.filter( userprofile__user_type = 'special' )

我如何还附加request.user(当前登录的用户),这也是一个User

我知道我可能可以做类似的事情

special_user_list = User.objects.filter(
    Q( userprofile__user_type = 'special' ) |
    Q( pk = request.user.pk )
)

但我不确定上面的代码是否可以双重包含request.user(如果request.user.get_profile().user_type = 'special'也是)。此外,我想避免使用复杂的 SQL 语句来添加我已经知道身份的用户来访问数据库。

4

1 回答 1

2

数据库执行此操作比 Python 执行此操作便宜。

special_user_list = User.objects.filter(
    Q(userprofile__user_type='special') |
    Q(pk=request.user.pk)
).distinct()
于 2012-04-12T06:50:56.950 回答