2012-04-12 8 views
0

でフィルタリング対象に、特定のオブジェクト(同じタイプ)を追加しましたUserですか?、Djangoの

私はおそらく

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

ような何かを行うことができます知っているが、私は上記のコードはrequest.userrequest.user.get_profile().user_type = 'special'同様の場合)をダブル含まれるかわかりません。また、私はすでにIDを知っているユーザーを追加するための複雑なSQLステートメントでデータベースにヒットすることを避けたいと思います。

答えて

2

データベースではPythonよりも安いです。

+0

本当に?フィルタリングされたクエリセットは単なるリストではないのですか?私はPythonの 'append()'を使うことはできませんか? – hobbes3

+1

いいえ、フィルタリングされた 'QuerySet'はまだ' QuerySet'です。その表現はリストのように見える*。 –

+0

Ignacio、私は@ hobbes3はここで '.distinct()'を実行する必要はないと思われます。なぜなら、左外部結合が1つしかないからです。 – okm

関連する問題