12

一緒に追加されたモデルの 2 つのフィールドに注釈を付ける方法を見つけようとしています。何かのようなもの:

total_done = qs.values(
    'ability__ability_name',
).extra(
    select={
        'total_amount': 'effective_value + overage',
    }
).annotate(
    total=Sum('total_amount'),
).values(
    'ability__ability_name', 'total_amount'
).order_by('-total_amount')

上記は機能せず、「キーワード 'total_amount' をフィールドに解決できません」というエラーが表示されます。 Django クエリ? ただし、「キーワード 'total_amount' をフィールドに解決できません」というメッセージが表示されることはありません。

渡されるクエリ文字列として生のSQLでクエリを実行する以外は、さまざまなフィルターと除外が既に実行されている可能性があり、その見通しが少し複雑になります。また、それが唯一の方法でない限り、フィールドを実際のモデルに追加して保存中にその値を計算することを避けようとしています。

4

3 に答える 3

1

次のようなことを試してください:

total_done = qs.extra(select = {'total_amount': 'SUM(one_column + another_column)'}, )
于 2012-02-14T21:21:13.870 に答える
0

https://stackoverflow.com/a/4348728/122033への回答によると(実際にはコメントにあります): 「Django はもちろん fullName をエイリアスとして渡しますが、これは MySQL では機能しません」 - そして私の推測はどちらでもありません私が使ってきたSQLiteで。:(

于 2012-03-26T18:17:01.637 に答える