1

我将如何使用自定义表单在会话向导中显示,所以当它完成每个步骤时,它会在 signup.html 中显示每个表单的 html。

创建用户.html

{% extends 'base.html' %}

{% block title %}Create User{% endblock %}
{% block content %}

  <form method="POST" action='.' enctype="multipart/form-data">
    {% csrf_token %}
    <!-- A formwizard needs this form -->
    {{ wizard.management_form }}
    {% for field in form %}
      <p>
        {{ field.label_tag }}<br>
        {{ field }}
        {% if field.help_text %}
          <small style="color: grey">{{ field.help_text }}</small>
        {% endif %}
        {% for error in field.errors %}
          <p style="color: red">{{ error }}</p>
        {% endfor %}
      </p>
    {% endfor %}
    <button><a href="{% url 'signup' %}">Sign up</a></button>
    <button><a href="{% url 'login' %}">Log In</a></button>
  </form>

{% endblock %}

视图.py

class UserWizard(SessionWizardView):
    template_name = "registration/signup.html"
    form_list = [SignUpForm]
    def done(self, form_list, **kwargs):
        process_data(form_list)
        return redirect('home')

注册.html

{% extends 'base.html' %}

{% load i18n %}
{% block head %}
{{ wizard.form.media }}
{% endblock %}

{% block title %}Sign up{% endblock %}

{% block content %}
  <h2>Sign up</h2>
  <p>Step {{ wizard.steps.step1 }} of {{ wizard.steps.count }}</p>
  <form action="." method="POST" enctype="multipart/form-data">
    {% csrf_token %}
  <table>
  {{ wizard.management_form }}
  {% if wizard.form.forms %}
      {{ wizard.form.management_form }}
      {% for form in wizard.form.forms %}
          {{ form }}
      {% endfor %}
  {% else %}
      {{ wizard.form }}
  {% endif %}
  </table>
  {% if wizard.steps.prev %}
  <button name="wizard_goto_step" type="submit" value="{{ wizard.steps.prev }}">{% trans "prev step" %}</button>
  {% endif %}
  <input type="submit" value="{% trans 'submit' %}"/>
  </form>
{% endblock %}
4

0 回答 0