Django 原始查询不输出

Django Raw Query does not Output

views.py

def dashboard(request):
    employee = Employee.objects.count()
    position1 = Posit.objects.raw('SELECT employee.stat, count(posit.position_id) as NO FROM employee, posit WHERE employee.id = posit.employee_id AND posit.position_id="1" GROUP BY employee.stat')
    
    context = {
        'employee ': employee ,
        'posit ': posit ,
        
    }
    return render(request, 'dashboard/dashboard.html', context)

我可以使用 {{employee}} 输出员工人数,但是当我使用 {{posit}} 时,位置输出是“RawQuerySet”。这是使用原始查询在 MariaDb 中的输出。

employee.stat NO
1 100
2 20
3 30

如何输出dashboard.html中每个employee.stat的所有值?我也可以分别输出每个 employee.stat NO 吗?

您可以根据文档遍历 RawQuerySet,因此您的代码需要遵循以下几行:

context = {
        'employee ': employee ,
        'posit': [pos for pos in position1],
        
    }

然后,您可以在模板标记中迭代 posit 变量,例如:

{% for pos in posit %}

然后在需要的时候使用{{pos}}