提问者:小点点

在一个HTML页面中有两个表单


我想有一个页面为双方的注册和登录。 然而,我无法处理这两个表格。 这是我的密码。 我在想,是否可以给这些表格起个名字,或者用另一种方式处理它?

Forms.py

from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm

class UserCreateForm(UserCreationForm):
    class Meta:
        fields = ("username", "email", "password1", "password2")
        model = get_user_model()

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields["username"].label = "Display name"
        self.fields["email"].label = "Email address"

url.py

from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views

app_name = 'accounts'

urlpatterns = [
    url('', views.SignUp.as_view(), name="signup"),
    url('', auth_views.LoginView.as_view(template_name="index.html"),name='login'),
    url('', auth_views.LogoutView.as_view(), name="logout"),    
]

index.html

<!DOCTYPE html>

<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <div class="container">
      <h1>Login</h1>
      <form method="POST">
        {% csrf_token %}
        {{ form }}
        <input type="submit" class="btn btn-default">
      </form>
    </div>
    <div class="container">
      <h1>Sign Up</h1>
      <form method="POST" >
        {% csrf_token %}
        {{ form }}
        <input type="submit" class="btn btn-default">
      </form>
    </div>
  </body>
</html>

非常感谢你


共2个答案

匿名用户

相信这个帖子有你需要的答案。 以下是我对这些信息的想法:

>

  • 在两个表单的操作中放置不同的URL。 那么您将有两个不同的视图函数来处理这两种不同的表单。 这有时会有点混乱,因为有些CBV需要主键,而其他CBV则不需要,这可能会导致冲突。

    从POST数据中读取submit按钮值。 您可以知道点击了哪个提交按钮:我如何构建多个提交按钮Django表单? 这是一个我更喜欢,因为它更干净的实现。

  • 匿名用户

    事实上,我想能够张贴和我的歉意。 简而言之,您必须使用Fetch API来实现这一点

    相关问题