1

合計値を取得して csn ファイルに書き込むには、django の raw クエリ関数を記述する必要があります。クエリを書きます

for time in Tracking_details.objects.raw('SELECT *,sum=SUM(work_time) FROM structure_tracking_details WHERE employee_id='+ employee_id + ' GROUP BY project_structure ') :      
        writer.writerow([ time.project_structure,time.sum ])

それは伝えます

そのような列はありません: 合計

クエリを正しく記述するにはどうすればよいですか?

4

1 に答える 1

2

に置き換えsum=SUM(work_time)ますSUM(work_time) AS sum

ところで、employee_id='+ employee_id + 'クエリを作成する方法は非常に貧弱です。そして、あなたはそれをすべきではありません。Django は関数に渡されたクエリをチェックしないため、クエリが SQL インジェクションを受けやすくなりますraw()。次のように生のクエリにパラメーターを渡すことができます-

Tracking_details.objects.raw('SELECT *, SUM(work_time) AS sum FROM structure_tracking_details WHERE employee_id = %s GROUP BY project_structure', [employee_id])

詳細.

于 2013-05-21T07:46:29.257 に答える