Обработка большого количества текстовых полей ввода в Django?
Я использую Django 3 (все еще) на своем сайте резюме. В качестве примера личного проекта я работаю над решателем судоку, поэтому у меня есть 81 текстовое поле ввода в сетке. Я пытаюсь найти наименее болезненный способ обработки до 81 ввода в Django, чтобы я мог передавать их в мои функции Python, которые обрабатывают логику судоку. Как я могу получить пользовательский ввод в моем views.py и обработать их все?
Я хочу взять все ячейки, в которые пользователь вводит числа, обработать их через мою функцию(и) Python, а затем отправить полную загадку обратно в ячейки после обработки. Я пока не очень опытен в работе с формами и данными форм в HTML. Для справки, вот мой HTML, который работает с сеткой. Я знаю, что мне нужно будет добавить максимальную длину текста для полей ввода, чтобы пользователь мог ввести только 1 цифру в ячейку.
Модифицируйте поле ввода, добавив атрибут name
к элементу input
:
sudoku.html
:
<form method="POST">
{% csrf_token %}
...
<input type="text" size="3" id="cell1" name="grid">
...
</form>
views.py
:
def sudoku(request):
grid = []
if request.method == 'POST':
grid = request.POST.getlist('grid')
context = {'grid': grid}
return render(request, 'sudoku.html' context=grid)
grid
представляет собой список из 81 элемента. Теперь вы можете обрабатывать взаимодействие с помощью простого HTML с использованием элемента form
или использовать ajax
для запроса метода представления.