0

2 つの外部キーを相互に比較して、Django でフィルターを作成する必要があります。二重下線構文は、方程式の左側でのみ機能します。したがって、右側にあるものはすべてエラーをスローします。

match = UserProfile.objects.filter(
    user__date_joined__gte = group__date
)

Django (またはここでは python) は group_dateを解析可能な変数名として解釈せず、定義されていないと文句を言います。変数を切り替えると、user _date_joined が未定義になります。(ここでの変数名は単なる例です)

私が達成しようとしているのは、SQL では次のようになります。

SELECT * FROM profile p, user u, group g WHERE
    p.u_id = u.id AND
    u.group_id = g.id AND
    u.date_joined >= g.date
4

1 に答える 1

5

これを行うにはF() 式を使用する必要があります

from django.db.models import F

match = UserProfile.objects.filter(user__date_joined__gte = F('group__date'))
于 2013-01-14T17:53:03.497 に答える