首页 > 解决方案 > 在 django 视图中添加 for 循环

问题描述

这是我的 django 视图。它基本上做的是,它从 Html 视图中获取检查的数据。但是我必须遍历视图中或模板中的每个数据,这样我不仅可以获得子测试的名称,而且它是fields.Subtest 是我的模型的名称,名称是它的字段

def create_test_bills(request):
    if request.method == 'GET':
        selected = request.GET.getlist('selected')
        for i in range(0,len(selected)):
            a = selected [i]
            print(selected)
            print(a)
            sub_test = Subtest.objects.filter(name=a)
    return render(request,'report.html',{'sub_test':sub_test}) 

标签: pythondjangoloopsfor-loop

解决方案


你可以使用 django 过滤器__in https://docs.djangoproject.com/en/3.0/ref/models/querysets/#in

而不是循环遍历它:

def create_test_bills(request):
    if request.method == 'GET':
        selected = request.GET.getlist('selected')
        if len(selected) > 0:
           sub_test = Subtest.objects.filter(name__in=selected)
    return render(request,'report.html',{'sub_test':sub_test}) 

推荐阅读