首页 > 解决方案 > 如何在 Django 的同一页面上使用登录表单和注册表单?

问题描述

我正在处理该forms.py文件,我希望在同一页面上同时拥有登录和注册表单。我希望 Django 处理<input>每个表单的 ID。

例如,我希望<input>里面的用户名<form id="register_form">变为<input ... id="register_form_username">,但它变为<input ... id="id_username">. 现在,<input>里面的用户名<form id="login_form">也将变为<input ... id="id_username">.

因此,我的浏览器会在开发者工具控制台中打印“[DOM] Found 2 elements with non-unique id #id_username”。

表格.py

from django import forms

class LoginForm(forms.Form):
    username = forms.CharField(label="Username", max_length=64)
    password = forms.CharField(label="Password", max_length=64, widget=forms.PasswordInput)

class RegisterForm(forms.Form):
    username = forms.CharField(label="Username", max_length=64)
    email = forms.CharField(label="Email", max_length=64, widget=forms.EmailInput)
    password = forms.CharField(label="Password", max_length=64, widget=forms.PasswordInput)
    confirm = forms.CharField(label="Confirm Password", max_length=64, widget=forms.PasswordInput)

视图.index

context = {
    "forms": {
        "login": LoginForm(),
        "register": RegisterForm(),
    }
}

return render(request, "orders/index.html", context)

索引.html

<form id="register_form" method="POST" action="/register">
    {% csrf_token %}
    {{ forms.register }}
    <button type="submit">Register</button>
</form>

<form id="login_form" method="POST" action="/login">
    {% csrf_token %}
    {{ forms.login }}
    <button type="submit">Login</button>
</form>

我该如何解决这个问题?

标签: pythondjangodjango-forms

解决方案


推荐阅读