Как получить данные, связанные с флажком, в представлениях Django

У меня есть база данных, к которой я пытаюсь получить доступ через шаблон в Django. Я хотел бы иметь возможность выбрать несколько флажков и вернуть элементы, связанные с этими флажками, в мой views.py, чтобы я мог выполнить некоторую логику на этих данных.

template.py

<input type="checkbox" checked autocomplete="off" name="tag" value={{ recipe.id }} />{{ recipe }}

views.py

def create_list(request):
    check_values = request.POST.getlist('tag')
    context = {'check_values': check_values)
    return render(request, 'grocery_lists/create_list.html', context)

На странице create_list.html просто отображается {{ check_values }}. Это была моя попытка устранить неполадки, чтобы я мог увидеть, что хранится в переменной check_values, Однако check_values в итоге оказывается пустым списком. Мне трудно найти решение, подходящее для моего случая. Заранее благодарю.

Исходя из вашего комментария - значение чекбокса не попадает в представление, потому что оно не находится в форме. Оберните его в форму с method="POST" и action="{% url 'create_list' %}" и снабдите кнопку submit кнопкой отправки этой формы - и тогда вы увидите его. Что-то вроде этого:

<form method="POST" action="{% url 'create_list' %}">
    <input type="checkbox" checked autocomplete="off" name="tag" value={{ recipe.id }} />{{ recipe }}
    <button type="submit">Submit</button>
</form>

Я бы также добавил, что формы в Django, вероятно, стоит проверить https://docs.djangoproject.com/en/4.0/topics/forms/

Django может обрабатывать формы для вас автоматически на основе моделей.

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