You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中registeration.html表单无法渲染问题求助

问题修复方案

1. 模板Block名称不匹配(核心问题)

base.html中定义的内容块是body_block,但resgisteration.html里误用了body_bloc(少写最后一个字母k),导致模板内容无法渲染。
修改resgisteration.html:

{% extends 'big_app/base.html' %}
{% load static  %}

{% block body_block %}

<div class="jumbotron">
    <h1> Form </h1>
    {% if registered %}
        <h1> Thank you for registering </h1>
    
    {% else %}

    <h1> Register here  </h1>

    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}
        {{ user_form.as_p }}
        {{ profile_form.as_p }}

        <input type="submit" name="" value="register">

    </form>

    {% endif %}

</div>
{% endblock body_block %}

额外修正:模板里的jumbotorn拼写为jumbotron,避免样式失效

2. 模板文件名拼写规范(可选但重要)

views.py中渲染的模板名是big_app/resgisteration.html(多了一个s),建议统一拼写为标准的registration.html:
修改views.py:

return render(
    request,
    "big_app/registration.html",  # 修正拼写
    {
        "user_form": user_form,
        "profile_form": profile_form,
        "registered": registered,
    },
)

同时将模板文件重命名为registration.html

3. 路由语法优化(适配Django 4.0+)

Django 4.0+推荐使用path代替re_path,让路由更简洁易读:
auth_test/urls.py:

from django.contrib import admin
from django.urls import path, include
from big_app import views

urlpatterns = [
    path('', views.index, name='index'),
    path('admin/', admin.site.urls),
    path('big_app/', include('big_app.urls')),
]

big_app/urls.py:

from django.urls import path
from big_app import views

app_name = 'big_app'

urlpatterns = [
    path('register/', views.register, name='register'),
]

4. 密码逻辑优化(可选)

如果你的UserForm继承自UserCreationForm,它已经内置了密码哈希逻辑,不需要手动调用user.set_password(user.password),否则会导致密码重复哈希,用户无法正常登录。

验证流程

  1. 修正上述代码后重启Django服务器
  2. 访问/big_app/register,确认表单正常显示
  3. 填写表单并提交,此时request.method会变为POST,进入表单验证与保存逻辑

内容的提问来源于stack exchange,提问作者Danish Xavier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 05:10:26