django Модель фильтра по списку - PullRequest
1 голос
/ 19 апреля 2020

я получаю список значений из флажка, теперь я хочу отфильтровать список с моей моделью и получить только результат фильтрации значений в списке

views.py
def ResultTest(request):
    var = request.POST.get('selectedTests')
    var1 = BookTest.objects.filter(test=v)
   return render(request, 'posts/result.html',{'var1':var1})
html file
    <div class="col-md-12" style="overflow: auto;">
        <input type="hidden" id="selectedTests" name="selectedTests">
        <input type="hidden" name="test_type" value="pathology">
        <table id="example" class="display" >
            <thead>
                <tr>
                    <th>Sr.No</th>
                    <th>Select</th>
                    <th>Test</th>
                    <th>MRP</th>
                    <th>CC Rate</th>


                </tr>
            </thead>
            <tbody>

                {% for booktest in contact_list %}
                <tr>
                    <td>{{ booktest.number }}
                    <td><input type="checkbox" name="check_list[]" value="{{ booktest.test }}" class="chkbox"/> </td>             
                    <td>{{ booktest.test }}</td>
                    <td>{{ booktest.mrp }} </td>
                    <td>{{ booktest.rate }}</td>



                </tr>


               {% endfor %}
            </tbody>

        </table>

я получаю selectedTests a список значений теперь я хочу, чтобы список значений фильтровался в моделях и получал все данные значений.

1 Ответ

0 голосов
/ 19 апреля 2020

Вы можете попытаться разделить значения запятой:

def result_test(request):
    selected = request.POST.get('selectedTests')
    if selected is not None:
        try:
            booktests = BookTest.objects.filter(test__in=selected.split(','))
        except ValueError:
            # &hellip; (1)
        else:
            return render(request, 'posts/result.html',{'var1':booktest})
    else:
        # &hellip; (2)

Вам нужно будет вернуть некоторый результат HTTP для (1) (когда формат не соблюдается) и (2), когда Во-первых, запрос не содержит значения selectedTests.

При этом, возможно, было бы лучше просто определить флажки как:

<input type="checkbox" name="<b>selectedTests[]</b>" /> option 1
<input type="checkbox" name="<b>selectedTests[]</b>" /> option 2

так, что у вас нет полагаться на JavaScript для ввода выбранных значений в скрытый элемент ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...