Джанго Аллах - Применение функции регистрации в HTML-файле пользовательской регистрации - PullRequest
1 голос
/ 19 октября 2019

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

Изначально шаблон регистрации Django allauth выглядит следующим образом.

django-allauth/allauth/templates/account/signup.html

<form class="signup" id="signup_form" method="post" action="{% url 'account_signup' %}">
  {% csrf_token %}
  {{ form.as_p }}
  {% if redirect_field_value %}
  <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
  {% endif %}
  <button type="submit">{% trans "Sign Up" %} &raquo;</button>
</form>

и мой новый привычный HTML-файл выглядит следующим образом.

mysite / templates / account / signup.html

<form class="signup" id="signup_form" method="post" accept-charset="utf-8" action= "{% url 'account_signup' %}" >
  {% csrf_token %}
  {% if redirect_field_value %}
    <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
  {% endif %}

  <div class="signup_body">
    <div class="container">
      <div class="home_list">
        <div class="row">
          <div class="col-12">
            <div>name</div>
              <div class="textinput">
                  <input type="text" id="signup_name" placeholder="please name" v-model="name">
              </div>
          </div>
        </div>
      </div>

      <div class="home_list">
        <div class="row">
          <div class="col-12">
            <div>email</div>
              <div class="textinput">
                  <input type="email" id="signup_email" placeholder="please email" v-model="email">
              </div>
          </div>
        </div>
      </div>

      <div class="home_list">
        <div class="row">
          <div class="col-12">
            <div>password</div>
              <div class="textinput">
                  <input type="password" id="signup_password" placeholder="password" v-model="password">
              </div>
          </div>
        </div>
      </div>

      <div class="home_list">
        <div class="row">
          <div class="col-12">
            <div>double check password</div>
              <div class="textinput">
                  <input type="password" id="signup_repassword" placeholder="type again" v-model="passwordAgain">
              </div>
          </div>
        </div>
      </div>
      <input type = "submit">
        <div class="home_list_btn">
            <div class="grobal_btn">
                <h4 class="grobal_btn_primary grobal_btn_round">Complete</h4>
            </div>
        </div>

    </div>
  </div>
</form>

и я не знаю, как работать с тегом "form" в HTML для отправки данных в БД и перемещения пользователя на следующую пользовательскую страницу.

Я пытался ввести информацию о следующей странице в параметр action в теге формы, и это работает, но данные не были отправлены и не сохранены.

Как настроить отправку этой HTML-страницыданные о регистрации пользователя в БД / сервере и переходе пользователя на следующую страницу?

1 Ответ

0 голосов
/ 19 октября 2019

Вы можете заменить:

<input type="email" id="signup_email" placeholder="please email" v-model="email">

на:

<input type="email" id="signup_email" placeholder="please email" name="email">

или просто просто:

{{ form.email }}

причина в том, что Форма регистрации , предоставляемый django-allauth, содержит следующие поля: email, username, password1, password2, поэтому вам нужно строго соблюдать эти имена для настройки html-формы.

Просто для справки, Django предоставляет Django Form, чтобы вы могли обрабатывать данные между клиентамисторона и сторона сервера. Это позволяет вам проверять входные данные, ModelForm также позволяет сохранять данные в вашу базу данных с помощью Django Model.

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