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

使用simple-django-login-and-register注册应用后自定义表单不显示求助

问题排查及修复方案

已发现的问题点:

  • 表单类语法错误:form代码中fields定义的第一个字段name左侧缺少单引号,属于语法错误,会直接导致表单类加载失败。
  • 路由与视图函数不匹配:你定义的视图函数名为add_bio,但urls.py中配置的视图是views.add_information,二者名称不一致,请求无法正确对应到处理逻辑。
  • 上下文变量名不匹配:视图add_bio中给模板传递的上下文键是form,但模板中调用的是info_form.as_p,变量名对不上,模板找不到表单对象所以无法渲染。
  • 命名冲突风险:模型类和表单类都命名为UserBio,极易在导入或调用时出现命名覆盖问题,建议给表单类改名区分,比如UserBioForm。
  • 跳转路径不规范:表单提交成功后的重定向用了硬编码的相对路径,建议用Django内置的reverse函数通过路由名反解析路径,避免路径修改后跳转失效。
  • 模板缺失功能标签:原模板的表单区块没有提交按钮,且出现了多余的</div>、</body>标签,既无法完成提交操作,也可能和继承的父模板结构冲突导致渲染异常。

修复后的代码参考:

1. form代码

# 修改类名避免和模型重名
class UserBioForm(forms.ModelForm):
    class Meta:
        model = UserBio
        # 补全name左侧缺失的单引号
        fields = ('name', 'age', 'phone', 'height', 'weight')

2. views代码

from django.shortcuts import reverse

def add_bio(request):
    submitted = False
    if request.method == "POST":
        info_form = UserBioForm(request.POST)
        if info_form.is_valid():        
            info_form.save()
            # 用reverse反解析路由地址,避免硬编码路径出错
            return HttpResponseRedirect(f"{reverse('add_information')}?submitted=True")
    else:
        info_form = UserBioForm()
        if 'submitted' in request.GET:
            submitted = True
    # 上下文变量名和模板调用名保持一致
    return render(request, 'accounts/profile/add_information.html', {'info_form': info_form, 'submitted':submitted})

3. urls代码

urlpatterns = [
    # 路由绑定正确的视图函数名
    path('add/information', views.add_bio, name='add_information'),   
]

4. html模板代码

{% extends 'layouts/default/base.html' %}
{% block title %} Add info {% endblock %} 

{% load i18n %}

{% block content %}

<h4>{% trans 'Add Info' %}</h4>

{% if submitted %}
Submitted correctly
{% else %}
<form method="post">       
    {% csrf_token %}    
    {{ info_form.as_p }}
    <!-- 补充缺失的提交按钮 -->
    <button type="submit">提交</button>
</form>
<br/>
{% endif %}
{% endblock %}

内容的提问来源于stack exchange,提问作者Kome Gognome

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:06:03