2017-04-25 13 views
0

Djangoで次のようなSQLクエリを書くにはどうすればよいですか?Djangoでこのクエリを書く方法

SELECT COUNT(*) 
FROM accounts_transactions 
LEFT JOIN accounts_notes 
ON accounts_notes.accounts_core_id = accounts_transactions.accounts_core_id 
WHERE email_status='clicked' AND email_template_id IS NOT NULL 
AND accounts_transactions.creation_date >= accounts_notes.creation_date 
AND accounts_transactions.creation_date <= accounts_notes.creation_date + INTERVAL 7 DAY; 

モデルの構造は次のとおりです。

クエリはうまく動作しますが、私はdjangoでこれをどのように書くのか分からないようです。プリフェッチ関連については読んでいますが、私はそれをどのようにしているのか分かりません。なぜなら、ノートとトランスクリプトの間の直接的なつながりはないからです。

更新:SOLUTION

queryset = AccountTransaction.objects.filter(
      account__note__email_template__isnull=False, 
      account__note__email_status='clicked', 
      creation_time__gte=F('account__note__creation_time'), 
      creation_time__lte=F(
       'account__note__creation_time') + timedelta(days=7) 
     ) 

答えて

0

使った.raw()SQLクエリを記述します。

queryset = AccountTransaction.objects.raw("Sql query here") 
関連する問題