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

Django新增数据库记录后模板不刷新,仅重启runserver后才显示如何解决?

Django新增数据后页面不更新、仅重启服务可见的解决方案

你将学生列表的查询语句student_data = Students.objects.all()定义在了模块顶层(视图函数外部),该代码只会在Django服务启动、模块加载时执行一次,拿到的是服务启动时刻的数据库数据。后续新增、修改、删除数据时,这个顶层变量不会自动重新查询数据库,所以页面只会显示旧数据,只有重启服务重新加载模块时才会更新,和你新增的ImageField字段无关。

修复方案

将查询逻辑移动到homePage视图函数内部,保证每次访问主页时都会重新查询最新数据,同时补充你原代码遗漏的StudentForm导入:

from django.shortcuts import render, redirect
# 补充缺失的表单导入
from .forms import StudentForm
from .models import Students

def homePage(request):
    # 每次请求都重新查询最新的学生数据
    student_data = Students.objects.all()
    return render(
        request,
        "pages/homePage.html",
        {"student_data": student_data},
    )


def createStudent(request):
    form = StudentForm()
    if request.method == "POST":
        form = StudentForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect("homePage")
    context = {"form": form}
    return render(request, "pages/addStudent.html", context)


def updateStudent(request, pk):
    student = Students.objects.get(unique_id=pk)
    form = StudentForm(instance=student)

    if request.method == "POST":
        form = StudentForm(request.POST, request.FILES, instance=student)
        if form.is_valid():
            form.save()
            return redirect("homePage")
    context = {"form": form}
    return render(request, "pages/addStudent.html", context)


def deleteStudent(request, pk):
    student = Students.objects.get(unique_id=pk)
    if request.method == "POST":
        student.delete()
        return redirect("homePage")
    context = {"object": student}
    return render(request, "pages/delete-template.html", context)


def viewStudent(request, pk):
    student = Students.objects.get(unique_id=pk)
    context = {"student": student}
    return render(request, "pages/view_student.html", context)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:54:00