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

Django模型表单提交的数据无法在另一页面显示问题

Django表单提交后数据无法显示的问题修复

1. 模型__str__方法存在错误

你的EmpModel中没有定义empID字段,但__str__方法却返回self.empID,这会导致对象调用时抛出AttributeError,虽然当前未触发,但属于潜在问题,需修正:

# Models.py
class EmpModel(models.Model):
    empName = models.CharField(max_length=20)
    empJob = models.CharField(max_length=20)

    def __str__(self):
        return self.empName  # 替换为模型中存在的字段

2. GET请求表单未实例化

视图的GET分支中,你直接传递了表单类而非实例化对象,模板无法正常渲染表单,需修改:

# Views.py
def empDetails(request):
    if request.method == "POST":
        form = EmpModelForm(request.POST)
        if form.is_valid():
            empFormSave = form.save()
            empInfoData = EmpModel.objects.all()
            return render(request, "empInfoData.html", {"empInfoData" : empInfoData})
    else:
        form = EmpModelForm()  # 实例化表单对象
        return render(request, "empInfo.html", {"form" : form})

3. QuerySet无法直接访问单个对象属性

EmpModel.objects.all()返回的是对象集合(QuerySet),模板中直接用{{ empInfoData.empName }}无法获取数据,需根据需求调整:

  • 若要显示所有员工数据,模板需遍历集合:
<!-- empInfoData.html 模板修改 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Employee Information Submitted</title>
</head>
<body>
    <h2>Employee Data available in the system</h2>
    {% for emp in empInfoData %}
        <p>Employee Name : {{ emp.empName }}</p>
        <p>Employee Job : {{ emp.empJob }}</p>
        <hr>
    {% empty %}
        <p>No employee data found.</p>
    {% endfor %}
</body>
</html>
  • 若仅需显示刚提交的单条数据,视图可直接传递保存后的对象:
# Views.py POST分支修改
if form.is_valid():
    empFormSave = form.save()
    return render(request, "empInfoData.html", {"empInfoData": empFormSave})

4. 模板语法错误

模板中存在多余的<符号,需修正:

<!-- 错误代码 -->
<<p>Employee Job : {{ empInfoData.empJob }}</p>

<!-- 修正后 -->
<p>Employee Job : {{ empInfoData.empJob }}</p>

内容的提问来源于stack exchange,提问作者Bilal Mohammad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:30:29