Django: как получить значение поля ввода HTML в представление django?
я хочу получить значение в поле ввода в django views, это не форма, так как я не пытаюсь отправить форму, мне просто нужно значение, которое находится в поле ввода
это html-шаблон
<input readonly name="ref_code" type="text" value="{{ request.user.profile.recommended_by.profile.code }}">
это мои представления django
code = str(request.GET.get('ref_code'))
print("This is the code:" + code)
Продолжает печатать This is the code: None
NOTE: я также пробовал использовать request.POST.get("ref_code")
, но это все равно не сработало.
В чем может быть проблема?
Вам определенно нужно что-то вроде формы.
Итак, давайте рассмотрим шаг за шагом, как работает ваш код.
Сначала создается представление, которое подготавливает данные для отображения шаблона. Это представление отвечает на первый запрос от браузера пользователя и возвращает пользователю отрисованный шаблон в виде статической html-страницы.
Во-вторых, браузер пользователя отображает полученную html-страницу пользователю.
В-третьих, пользователь вводит что-то в поле ввода.
На этом этапе данные, введенные пользователем, все еще находятся на его стороне в браузере.
На этом этапе у вас есть два варианта:
- Используйте форму, чтобы позволить пользователю отправить данные некоторому представлению на сервере, которое затем обработает полученные данные.
- Использовать JavaScript для захвата введенных данных и отправки их на сервер с помощью AJAX запроса.
Полагаю, в данном случае вы хотели бы использовать второй вариант.
Я бы рекомендовал прочитать руководство по основам AJAX. Руководство по Ajax на MDN является хорошим местом для начала.