Добавить для l oop в представлении django - PullRequest
0 голосов
/ 17 февраля 2020

это мой django вид. Что он в основном делает, так это получает проверенные данные из Html вида. Но мне нужно l oop через все данные в представлении или в шаблоне, чтобы я мог получить не только название подтеста, но и его поля. Subtest - это имя моей модели, а name - это поле

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}) 

1 Ответ

1 голос
/ 17 февраля 2020

Вы можете использовать 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}) 
...