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

Django中更新Verifier实例后重定向至关联Moc实例求助

解决Django Verifier更新后重定向到关联Moc页面的问题

先假设你的模型关联结构大概是这样(方便参考):

from django.db import models

class Moc(models.Model):
    name = models.CharField(max_length=100)
    # 其他Moc字段

class Verifier(models.Model):
    moc = models.ForeignKey(Moc, on_delete=models.CASCADE)
    signoff = models.BooleanField(default=False)
    # 其他Verifier字段

函数视图的处理方案

如果你的verifier_signoff_view是函数视图,更新Verifier实例后,直接通过关联的moc属性拿到对应的Moc对象,再用redirect跳转到Moc的详情页就行——前提是你已经给Moc的详情页URL命名(比如叫moc_detail)。

示例代码:

from django.shortcuts import get_object_or_404, redirect, render
from .models import Verifier
from .forms import VerifierSignoffForm

def verifier_signoff_view(request, pk):
    verifier = get_object_or_404(Verifier, pk=pk)
    if request.method == 'POST':
        form = VerifierSignoffForm(request.POST, instance=verifier)
        if form.is_valid():
            form.save()
            # 核心:跳转到关联Moc的详情页
            return redirect('moc_detail', pk=verifier.moc.pk)
    else:
        form = VerifierSignoffForm(instance=verifier)
    return render(request, 'verifier_signoff.html', {'form': form, 'verifier': verifier})

类视图的处理方案

如果用的是Django通用类视图(比如UpdateView),只要重写get_success_url方法,返回关联Moc的URL即可。

示例代码:

from django.views.generic.edit import UpdateView
from django.urls import reverse
from .models import Verifier
from .forms import VerifierSignoffForm

class VerifierSignoffView(UpdateView):
    model = Verifier
    form_class = VerifierSignoffForm
    template_name = 'verifier_signoff.html'

    def get_success_url(self):
        # 获取当前更新的Verifier实例对应的Moc
        moc = self.object.moc
        # 返回Moc详情页的URL,这里假设URL名称是moc_detail
        return reverse('moc_detail', kwargs={'pk': moc.pk})

补充说明

  • 要确保你在urls.py里已经定义了Moc详情页的URL,比如:
from django.urls import path
from .views import MocDetailView, verifier_signoff_view

urlpatterns = [
    path('moc/<int:pk>/', MocDetailView.as_view(), name='moc_detail'),
    path('verifier/<int:pk>/signoff/', verifier_signoff_view, name='verifier_signoff'),
]
  • 如果你的Moc详情页用的不是pk作为URL参数(比如用slug),记得把kwargs里的参数名对应改成你实际用的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:20:47