Python Django]我的登记表没有';行不通

Python Django]我的登记表没有';行不通,python,html,django,django-forms,Python,Html,Django,Django Forms,我来找你是因为我的表格有问题。让我解释一下,当我在输入中输入信息并单击按钮时,它完全不起任何作用,没有任何错误消息 这是views.py: 从django.shortcuts导入渲染,重定向 从django.http导入HttpResponseRedirect 从。模型导入电影 从.forms导入CreateUserForm 从django.contrib导入消息 从django.contrib.auth.models导入用户 从django.contrib.auth导入身份验证、登录、注销 从

我来找你是因为我的表格有问题。让我解释一下,当我在输入中输入信息并单击按钮时,它完全不起任何作用,没有任何错误消息

这是views.py:

从django.shortcuts导入渲染,重定向
从django.http导入HttpResponseRedirect
从。模型导入电影
从.forms导入CreateUserForm
从django.contrib导入消息
从django.contrib.auth.models导入用户
从django.contrib.auth导入身份验证、登录、注销
从django.conf导入设置
从django.contrib.auth.decorators导入所需的登录名
#在这里创建您的视图。
def home(请求):
上下文={
“movies”:movies.objects.all()
}
返回呈现(请求'list/home.html',上下文)
@需要登录(登录url='login-page')
def添加(请求):
返回呈现(请求'list/add.html',{'title':'addmovies'})
def注册(请求):
如果request.method==“POST”:
form=CreateUserForm(request.POST)
如果form.is_有效():
保存(commit=True)
返回重定向('list-home')
其他:
form=CreateUserForm()
返回呈现(请求'list/sign.html',{'form':form})
这是forms.py:

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User

class CreateUserForm(UserCreationForm):
    username = forms.CharField(max_length=50, required=True, widget=forms.TextInput(attrs={"placeholder": "Your pseudo:"}))
    first_name = forms.CharField(max_length=50, required=True, widget=forms.TextInput(attrs={"placeholder": ">Your first name:"}))
    last_name = forms.CharField(max_length=50, required=True, widget=forms.TextInput(attrs={"placeholder": "Your  last name:"}))
    email = forms.EmailField( max_length=50, required=True, widget=forms.TextInput(attrs={"placeholder": "Your email:"}))
    password = forms.CharField(max_length=50, required=True, widget=forms.PasswordInput(attrs={"placeholder": "Your password:"}))
    password2 = forms.CharField(max_length=50, required=True, widget=forms.PasswordInput(attrs={"placeholder": "Confirm your password:"}))

    class Meta:
        model = User
        fields = ('username', 'first_name', 'last_name', 'email', 'password', 'password2')
和my sign.html:

{% extends "list/base.html" %}
{% block content %}
<main class="site-main" style="background-color: black; color: white;">
    <div class="form-box2">
        <h1 style="text-align: center; padding: 20px;">SIGN UP</h1>
        <form  method="POST" class="conta" style="text-align: center;">
            {% csrf_token %}
            {{form.username}}
            {{form.first_name}}
            {{form.last_name}}
            {{form.email}}
            {{form.password}}
            {{form.password2}}
            <button type="submit">Sign up</button>
        </form>
        {% if messages%}
            {% for message in messages%}
                <div class="alert alert-{{message.tags }}">{{ message }}</div>
            {% endfor %}
        {% endif %}
    </div>
</main>

{% endblock content%}
{%extends“list/base.html”%}
{%block content%}
注册
{%csrf_令牌%}
{{form.username}
{{form.first{u name}}
{{form.last_name}
{{form.email}
{{form.password}}
{{form.password2}}
注册
{%if消息%}
{消息%中的消息为%s}
{{message}}
{%endfor%}
{%endif%}
{%endblock内容%}

所以在这里,我可能忘了什么,但我找不到它,我希望你能帮助我。提前感谢您的帮助

如果表单无效,您将创建一个新表单,因此新表单中不会出现任何错误

def signup(request):
    form = CreateUserForm()  # Form for GET request

    if request.method == 'POST':
        form = CreateUserForm(request.POST)  # add the data from POST to the form
        if form.is_valid():
            form.save(commit=True)
            return redirect('list-home')

    # An invalid form will end up here with the errors in it.
    return render(request, 'list/sign.html', {'form': form})
查看模板,因为您只是渲染每个字段,所以也不会看到附加到字段的错误

当你开始运行时,试着让Django为你做最多的工作。也可能有其他错误,因此您应该包括这些错误(如果存在)

        {% if form.non_field_errors %}
            <ul>
            {% for error in form.non_field_errors %}
                <li>{{ error }}</li>
            {% endfor %}
            </ul>
        {% endif %}

        {# To really make sure you debug this #}
        {{ form.errors }}

        <form  method="POST" class="conta" style="text-align: center;">
            {% csrf_token %}
            {{ form.as_p }}
            <button type="submit">Sign up</button>
        </form>
{%if form.non_字段_错误%}
    {%表示表单中的错误。非\u字段\u错误%}
  • {{error}}
  • {%endfor%}
{%endif%} {#要真正确保您调试此#} {{form.errors}} {%csrf_令牌%} {{form.as_p}} 注册
当您按下按钮时,浏览器的开发工具会发生什么情况?当我单击“页面完全加载前布局已被强制。如果尚未加载样式表,则可能会导致未设置样式的内容闪现”。我尝试了您刚刚加载的内容,但仍然没有任何效果。发生了一些事情,你只是还没找到而已。我已经用非字段错误标记更新了我的答案&一个调试检查,以输出表单错误中的内容。如果这不起作用,是时候开始在视图中放置
print
语句来检查它的位置了。谢谢大家,我在发布错误时发现,它说“password1,此字段是必需的”,所以我将1添加到我的字段中,一切正常。