に基づいてRawSQL注釈をフィルタリングするためにどのようにジャンゴにこのような何かをすることは可能です:Djangoのクエリセット:クエリセットフィールド
MyModel.objects.annotate(
val=RawSQL(
"SELECT COUNT(*) FROM another_model_table where some_field= %s",
(a_field_from_MyModel)
)
)
ありがとう!
に基づいてRawSQL注釈をフィルタリングするためにどのようにジャンゴにこのような何かをすることは可能です:Djangoのクエリセット:クエリセットフィールド
MyModel.objects.annotate(
val=RawSQL(
"SELECT COUNT(*) FROM another_model_table where some_field= %s",
(a_field_from_MyModel)
)
)
ありがとう!
あなたはこのような何か行うことができます。
MyModel.objects.annotate(
val=RawSQL(
"""SELECT COUNT(*) FROM another_model_table
where some_field=myapp_mymodel.some_field""",
)
)
おかげトドルを、エラーが発生する - Djangoはmyapp_mymodel.some_fieldの部分に不満です - あなたは説明できますか? –
'table_name.field_name'にする必要があります。デフォルトでは、Djangoはテーブル名のモデル名の前にアプリ名を付加します。つまり、MyApp内のMyModelにはテーブルmyapp_mymodelがあります。クエリ/データベースをチェックして、正しい名前を取得してください。 – Todor
それはちょうどタイプミスだったことを忘れて、答えに感謝! –
https://docs.djangoproject.com/en/1.11/topics/db/aggregation/#cheat-sheet理にかなっていますが、私 – souldeux