簡體   English   中英

通過比較兩個外鍵來過濾Django模型

[英]Filter a django model by comparing two foreign keys

我需要在Django中通過將兩個外鍵相互比較來創建過濾器。 雙下划線語法僅適用於等式的左側。 因此,右側的任何內容都會引發錯誤:

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

Django(或此處的python)沒有將group_ date解釋為可解析的變量名,並且抱怨它沒有定義。 我可以切換變量,然后用戶 _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

您將必須使用F()表達式來執行此操作

from django.db.models import F

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM