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')。また、ID を既に知っているユーザーを追加するための複雑な 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 に答える