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

Django使用函数视图处理模态框对象操作后无法跳转回原列表如何解决

解决方案

问题原因

你使用的模态框表单插件默认走AJAX异步提交逻辑,服务端返回的302重定向只会被AJAX请求内部处理,不会作用于当前打开候选人列表的父页面,因此看不到跳转效果。

可选方案

方案1(推荐:体验更流畅)

前端监听表单提交成功事件触发跳转/刷新,无需全页跳转即可看到更新后的评分

  1. 修改列表页的JS脚本,增加success回调:
$(function () {
    $(".validate-student").each(function () {
        $(this).modalForm({ 
            formURL: $(this).data("form-url"),
            success: function() {
                // 二选一即可
                // 选项1:直接重载当前列表页,自动加载更新后的评分
                window.location.reload();
                // 选项2:跳转到指定列表页,和你原有跳转目标保持一致
                // window.location.href = "{% url 'list_student' args=[1945] %}";
            }
        });
    });
});
  1. 修改视图代码,异步提交无需返回重定向:
from django.http import HttpResponse

def validate_grade(request, pk):
    context ={}
    obj = get_object_or_404(Student, id = pk)

    if request.method == "POST":
        obj.grade_registration += 1
        obj.save()
        # 返回204状态码表示操作成功无返回内容
        return HttpResponse(status=204)

    return render(request, "students/validate_student.html", context)

方案2(最简修改)

让模态框表单走同步提交逻辑,直接复用原有后端重定向代码,只需修改模态框的form标签,增加target="_top"属性:

<form method="POST" action="" target="_top">

该属性会通知浏览器将表单提交作用于最上层窗口,后端返回的重定向会直接生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:06:00