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-страницу пользователю.

В-третьих, пользователь вводит что-то в поле ввода.

На этом этапе данные, введенные пользователем, все еще находятся на его стороне в браузере.

На этом этапе у вас есть два варианта:

  1. Используйте форму, чтобы позволить пользователю отправить данные некоторому представлению на сервере, которое затем обработает полученные данные.
  2. Использовать JavaScript для захвата введенных данных и отправки их на сервер с помощью AJAX запроса.

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

Я бы рекомендовал прочитать руководство по основам AJAX. Руководство по Ajax на MDN является хорошим местом для начала.

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