Django. Как получить значение из нескольких флажков

Здравствуйте, я видел много вопросов об этом, но я не знаю, почему это не работает для меня. У меня есть этот кусок кода в моем home.html файле:

<form action="/result/" method="post">
<div class="form-locat-att">
    {% csrf_token %}
    Location: <input type="text" name="location_input" required/>
    <p></p><br>
    <button class="btn btn-block btn-round", name="search_button">Search</button>
    <p></p>

    <h5>Zabytki</h5> <p></p>
    <input type="checkbox" id="museum" name="att[]" value=" Museum OR">
    <label for="muzeum"> Museum</label> &nbsp;

    <input type="checkbox" id="statue" name="att[]" value=" Statue OR">
    <label for="pomnik"> Statue</label> &nbsp;

    <input type="checkbox" id="castle" name="att[]" value=" Castle OR">
    <label for="zamek"> Castle</label> &nbsp;

    <input type="checkbox" id="palace" name="att[]" value=" Palace OR">
    <label for="palac"> Palace</label> <p></p>

</div>
</form>

А это мой views.py:

def result(request):
    if request.method == 'POST' and 'search_button' in request.POST:

        attrac = request.POST.getlist('att[]')
        locat = request.POST.get('location_input')

        print(attrac)

        # (here i have some irrelevant code where i render my context)
        return render(request, 'przewodnik_app/result.html', context)
    return render(request, 'przewodnik_app/result.html')

Я пытаюсь вывести attrac, который должен дать мне значения из флажков, которые я проверил. Когда я использую метод .get с id, например request.POST.get('museum') он возвращает правильное значение. Когда я использую name, список всегда пуст.

Ваш код, похоже, работает нормально для меня, распечатывая:

# print(request.POST) prints out
<QueryDict: {'csrfmiddlewaretoken': ['ty1QJh1jQpwt1Bgd77lLJqyudgSLt5wGCx4zSfh9Iwak02A4J8JiliMHPZa034v6'], 'location_input': ['Holland'], 'search_button': [''], 'att[]': [' Museum OR', ' Castle OR', ' Palace OR']}>
        
# request.POST.getlist('att[]') prints out
[' Museum OR', ' Castle OR', ' Palace OR']

Вам также не нужно делать if request.method == 'POST' and 'search_button' in request.POST:

Кнопка без типа по умолчанию является кнопкой submit, отправляющей все с атрибутом name внутри тегов <form> (но вы должны задать ей тип), поэтому вместо

<button class="btn btn-block btn-round", name="search_button">Search</button>

вы должны сделать

<button class="btn btn-block btn-round", type='submit'>Search</button>

и затем просто if request.method == 'POST':

Вернуться на верх