Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法发送注册表表单_Python_Html_Django - Fatal编程技术网

Python 无法发送注册表表单

Python 无法发送注册表表单,python,html,django,Python,Html,Django,无法发送注册表表单。 我在views.py上写的 def login(request): login_form = LoginForm(request.POST) regist_form = RegisterForm(request.POST) if login_form.is_valid(): user = login_form.save() login(request, user) context = {

无法发送注册表表单。 我在views.py上写的

def login(request):
    login_form = LoginForm(request.POST)
    regist_form = RegisterForm(request.POST)
    if login_form.is_valid():
        user = login_form.save()
        login(request, user)
        context = {
            'user': request.user,
            'login_form': login_form,
            'regist_form': regist_form,
        }
        return redirect('profile')

    context = {
        'login_form': login_form,
        'regist_form': regist_form,
    }
    return render(request, 'registration/accounts/login.html', context)
在login.html中

<body>
    <ul class="top-menu">
                <h3 class="login">Login</h3>

                <div class="container">
                <form action="{% url 'login' %}" method="post" role="form">
                    {% csrf_token %}
                <div class="form-group">
                    <label class="email_form">Email</label>
                    <input for="id_email" name="email" type="text" value="" placeholder="Email" class="form-control"/>
                </div>
                <div class="form-group">
                    <label class="password_form">Password</label>
                    <input id="id_password" name="password" type="password" value="" minlength="8" maxlength="12" placeholder="Password" class="form-control"/>
                </div>

                <button type="submit" class="btn btn-primary btn-lg">Login</button>
                <input name="next" type="hidden" value="{{ next }}"/>
                </form>

                </div>
            </ul>

     <div class="newaccount">
          <h2>New Account registration</h2>
          <form class="form-inline" action="{% url 'accounts:detail' %}" method="POST">
              <div class="form-group">
                <label for="id_username">Username</label>
                {{ form.username }}
                {{ form.username.errors }}
              </div>

              <div class="form-group">
                <label for="id_email">Email</label>
                {{ form.email }}
                {{ form.email.errors }}
              </div>

              <div class="form-group">
                <label for="id_password">Password</label>
                {{ form.password1 }}
                {{ form.password1.errors }}
              </div>

              <div class="form-group">
                <label for="id_password">Password(conformation)</label>
                  {{ form.password2 }}
                  {{ form.password2.errors }}
                  <p class="help-block">{{ form.password2.help_text }}</p>
              </div>

              <button type="submit" class="btn btn-primary btn-lg">Regist</button>
              <input name="next" type="hidden"/>
              {% csrf_token %}
            </form>
          </div>
</body>
在URL.py中

urlpatterns = [
    url(r'^login/$', views.login,name='login'),
]
登录表单中没有错误,但注册表单中没有显示所有输入字段。我认为无法发送RegisterForm,但我确实无法理解为什么LoginForm的所有输入字段都可以,尽管我使用RegisterForm的相同方式发送LoginForm。
我应该如何解决这个问题?我应该写什么?

您正在使用HTML表单中的
登录表单
注册表单
呈现HTML

但是您试图使用
form
var而不是
register\u form
进行渲染,因此django不知道要渲染什么

若您试图在django模板引擎中呈现not exist变量,它只会显示
Nothing
。所以不会有错误

按如下方式更改HTML代码:

<body>
<ul class="top-menu">
    <h3 class="login">Login</h3>

    <div class="container">
        <form action="{% url 'login' %}" method="post" role="form">
            {% csrf_token %}
            <div class="form-group">
                <label class="email_form">Email</label>
                <input for="id_email" name="email" type="text" value="" placeholder="Email" class="form-control"/>
            </div>
            <div class="form-group">
                <label class="password_form">Password</label>
                <input id="id_password" name="password" type="password" value="" minlength="8" maxlength="12"
                       placeholder="Password" class="form-control"/>
            </div>

            <button type="submit" class="btn btn-primary btn-lg">Login</button>
            <input name="next" type="hidden" value="{{ next }}"/>
        </form>

    </div>
</ul>

<div class="newaccount">
    <h2>New Account registration</h2>
    <form class="form-inline" action="{% url 'accounts:detail' %}" method="POST">
        <div class="form-group">
            <label for="id_username">Username</label>
            {{ regist_form.username }}
            {{ regist_form.username.errors }}
        </div>

        <div class="form-group">
            <label for="id_email">Email</label>
            {{ regist_form.email }}
            {{ regist_form.email.errors }}
        </div>

        <div class="form-group">
            <label for="id_password">Password</label>
            {{ regist_form.password1 }}
            {{ regist_form.password1.errors }}
        </div>

        <div class="form-group">
            <label for="id_password">Password(conformation)</label>
            {{ regist_form.password2 }}
            {{ regist_form.password2.errors }}
            <p class="help-block">{{ regist_form.password2.help_text }}</p>
        </div>

        <button type="submit" class="btn btn-primary btn-lg">Regist</button>
        <input name="next" type="hidden"/>
        {% csrf_token %}
    </form>
</div>
</body>

    登录 {%csrf_令牌%} 电子邮件 密码 登录
新帐户注册 用户名 {{regist_form.username} {{regist_form.username.errors} 电子邮件 {{regist_form.email} {{regist_form.email.errors} 密码 {{regist_form.password1}} {{regist_form.password1.errors} 密码(确认) {{regist_form.password2} {{regist_form.password2.errors}

{{regist\u form.password2.help\u text}

注册 {%csrf_令牌%}
此代码将显示您的
输入
标记


还有一件事……为什么不在HTML中使用
登录表单

在HTML表单中使用
登录表单
注册表单
呈现HTML

但是您试图使用
form
var而不是
register\u form
进行渲染,因此django不知道要渲染什么

若您试图在django模板引擎中呈现not exist变量,它只会显示
什么都不显示
,所以不会出现错误

按如下方式更改HTML代码:

<body>
<ul class="top-menu">
    <h3 class="login">Login</h3>

    <div class="container">
        <form action="{% url 'login' %}" method="post" role="form">
            {% csrf_token %}
            <div class="form-group">
                <label class="email_form">Email</label>
                <input for="id_email" name="email" type="text" value="" placeholder="Email" class="form-control"/>
            </div>
            <div class="form-group">
                <label class="password_form">Password</label>
                <input id="id_password" name="password" type="password" value="" minlength="8" maxlength="12"
                       placeholder="Password" class="form-control"/>
            </div>

            <button type="submit" class="btn btn-primary btn-lg">Login</button>
            <input name="next" type="hidden" value="{{ next }}"/>
        </form>

    </div>
</ul>

<div class="newaccount">
    <h2>New Account registration</h2>
    <form class="form-inline" action="{% url 'accounts:detail' %}" method="POST">
        <div class="form-group">
            <label for="id_username">Username</label>
            {{ regist_form.username }}
            {{ regist_form.username.errors }}
        </div>

        <div class="form-group">
            <label for="id_email">Email</label>
            {{ regist_form.email }}
            {{ regist_form.email.errors }}
        </div>

        <div class="form-group">
            <label for="id_password">Password</label>
            {{ regist_form.password1 }}
            {{ regist_form.password1.errors }}
        </div>

        <div class="form-group">
            <label for="id_password">Password(conformation)</label>
            {{ regist_form.password2 }}
            {{ regist_form.password2.errors }}
            <p class="help-block">{{ regist_form.password2.help_text }}</p>
        </div>

        <button type="submit" class="btn btn-primary btn-lg">Regist</button>
        <input name="next" type="hidden"/>
        {% csrf_token %}
    </form>
</div>
</body>

    登录 {%csrf_令牌%} 电子邮件 密码 登录
新帐户注册 用户名 {{regist_form.username} {{regist_form.username.errors} 电子邮件 {{regist_form.email} {{regist_form.email.errors} 密码 {{regist_form.password1}} {{regist_form.password1.errors} 密码(确认) {{regist_form.password2} {{regist_form.password2.errors}

{{regist\u form.password2.help\u text}

注册 {%csrf_令牌%}
此代码将显示您的
输入
标记

还有一件事…为什么不在HTML中使用
登录表单