页面上不显示空表单

Empty form doesn't show on the page

我正在我的站点上构建自定义用户身份验证逻辑。我创建了 MyUser 模型而不是创建了表单

from django import forms                                     
from django.contrib.auth.forms import UserCreationForm,UserChangeForm
from .models import MyUser

classCustomUserCreationForm(UserCreationForm):
   class Meta:
       model = MyUser
       fields = ('email',)

比项目级别 urls.py 文件我添加了以下路径

 urlpatterns =[ 
 path('login/',include('authorization.urls'),]

authorization/urls.py 我创造了

from django.urls import path                                  
from .views import login_form                                                                                            
urlpatterns =
[path(' ',login_form,name='login_form'),]       

在我的视图文件中,我有以下方法,如果请求 == GET 应该 return 空表单,如果表单 is_valid() 它重定向到另一个页面

from django.http import HttpResponseRedirect               
from django.shortcuts import render                           
from .form import UserCreationForm

def login_form(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data('email')
            password = form.cleaned_data('password')
        return HttpResponseRedirect('/thank/')
    else:
        form = UserCreationForm()
    return render(request,'registration/log.html',{'form':form})

最后一块是log.html

{% extends 'main/base.html' %}                             
<form action="{% url 'login_form' %}" method="post">              
{% csrf_token %}
 {{ form }}                                
<input type="submit" value="Submit">                         
</form>

但是当我 运行 服务器打开 http://127.0.0.1:8000/login/ 我没有任何例外,也没有空表格本身

您正在扩展 log.html 文件中的 main/base.html 模板;但是,您没有在其中包含任何 {% blcok xxx %}

所以它会省略整个 custom html inside log.html.

基本上,如果你有类似的东西:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
</head>
<body>
    {% block content %}

    {% endblock %}
</body>
</html>

在您的 base.html 中,那么您的 log.html 应该具有以下内容:

{% extends 'main/base.html' %}  

{% block content %}              
    <form action="{% url 'login_form' %}" method="post">              
    {% csrf_token %}
     {{ form }}                                
    <input type="submit" value="Submit">                         
    </form>
{% endblock %}