Предварительное заполнение поля формы через url

#python #django

#python #django

Вопрос:

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

Кто-нибудь знает, как это сделать? Я был бы признателен за некоторую помощь. Спасибо.

мой URL-адрес для входа в urls.py:

 path('login/', views.login, name="login")
  

моя ссылка для входа в систему в сообщении об ошибке:

 <a href="login/">login</a>
  

Пожалуйста, дайте мне знать, что добавить к ссылке в url, чтобы предварительно заполнить ее идентификатором электронной почты пользователя.

Ответ №1:

Вам просто нужно получить данные, указанные в URL request.GET -адресе, и использовать их для предварительного заполнения вашей формы initial в представлении входа в систему. Это примерно выглядело бы так:

 def login(request, *args, **kwargs):
    initial = {}
    if 'email' in request.GET:
        initial['email'] = request.GET['email']
    form = LoginForm(request.POST or None, initial=initial)
    ...
  

Конечно, вам нужно будет добавить адрес электронной почты к URL-адресу входа:

 <a href="login/?email=foo@bar.baz">login</a>
  

Комментарии:

1. есть идеи о том, как заменить ‘fool@bar.baz ‘ в электронное письмо, которое вводит пользователь, в jquery