Python Django不能很好地传递上下文

Python Django不能很好地传递上下文,python,django,Python,Django,我试图使用上下文传递查询集。但在模板页面上,上下文不起作用。 当我在同一个视图中实现两个查询时,一个查询集工作正常,但另一个查询传递不好。这是我的看法 # Create your views here. def xray_result_view(request): q=query_holding_together.objects.filter(which_user=request.user) for x in q: all_reports=xray_resul

我试图使用上下文传递查询集。但在模板页面上,上下文不起作用。 当我在同一个视图中实现两个查询时,一个查询集工作正常,但另一个查询传递不好。这是我的看法

# Create your views here.
def xray_result_view(request):
    q=query_holding_together.objects.filter(which_user=request.user)
    for x in q:  
        all_reports=xray_result.objects.get(which_query=x)
    print(all_reports.sys_gen_result)
    return render(request,'XRay/result.html',{'reports':all_reports})
当q作为模板传递时,它会正常工作,但并非对所有报告都有效。这是我的模板

{% extends "login/successful.html" %}
{% block middle_window %}
</div>
<div class="container adjust-ment">
    <div class="row">
        <div class="col-12">
            Previous X-ray Results
        </div>
    </div>
    <div class="row">
        <div class="col-12">
            Result
        </div>
    </div>
    <div class="row">
        <div class="col-12">
        {% for y in reports.iterator %}
            File Name:<br>
            Date and Time of Upload:<br>
            System Generated Result:{{ y.sys_gen_result }}<br>
            Doctor's Comment on Result:{{ y.doctor_comment }}<br>
        {% endfor %}


        </div>
    </div>
</div>
{%endblock middle_window %}
{%extends“login/successful.html”%}
{%block middle_window%}
以前的X光检查结果
结果
{reports.iterator%}
文件名:
上传日期和时间:
系统生成的结果:{y.sys\u gen\u Result}}
医生对结果的评论:{{y.Doctor_Comment}}
{%endfor%} {%endblock中间_窗口%}
您不是在模板中传递查询集,而是在发送对象。让我解释一下:

 for x in q:  
    all_reports=xray_result.objects.get(which_query=x)  #<-- Here
并更新模板:

{% for y in reports %}
    File Name:<br>
    Date and Time of Upload:<br>
    System Generated Result:{{ y.sys_gen_result }}<br>
    Doctor's Comment on Result:{{ y.doctor_comment }}<br>
{% endfor %}
{%y在报告%}
文件名:
上传日期和时间:
系统生成的结果:{y.sys\u gen\u Result}}
医生对结果的评论:{{y.Doctor_Comment}}
{%endfor%}

<>最后,考虑在编写类名时使用<代码> PascalCase <代码>(按PEP8标准)。

AS @ RoudRa指出循环存在问题。 因此,我尝试了下面的变通方法,并将其作为一种魅力

def xray_result_view(request):
    q=query_holding_together.objects.filter(which_user=request.user)
    all_reports=xray_result.objects.none()
    for x in q:  
        all_reports = all_reports | xray_result.objects.filter(which_query=x)
    for x in all_reports:
        print(x.sys_gen_result) 
    return render(request,'XRay/result.html',{'reports':all_reports})
def xray_result_view(request):
    q=query_holding_together.objects.filter(which_user=request.user)
    all_reports=xray_result.objects.none()
    for x in q:  
        all_reports = all_reports | xray_result.objects.filter(which_query=x)
    for x in all_reports:
        print(x.sys_gen_result) 
    return render(request,'XRay/result.html',{'reports':all_reports})