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

Django CreateView创建对象后如何通过nome_scheda字段跳转对应页面

解决方案

1. 重写CreateView的get_success_url方法

你需要在SchedaCreateView类中新增get_success_url方法,指定表单提交成功后的跳转路径,修改后的views.py代码如下:

from django.urls import reverse # 顶部导入reverse工具

class SchedaCreateView(CreateView):
    model = Schede
    fields = ['nome_scheda','data_inizio','data_fine']
    template_name = 'crea/passo1.html'

    def form_valid(self, form):
        form.instance.utente = self.request.user
        return super().form_valid(form)
    
    # 新增成功跳转逻辑
    def get_success_url(self):
        # self.object就是刚创建完成的Schede实例,把nome_scheda作为参数传入路由
        return reverse('creazione_passo1', kwargs={'nome': self.object.nome_scheda})

2. 可选:优化URL规则(推荐)

你可以给urls.py的路径参数明确指定类型,避免参数匹配歧义:

# 把<nome>改为<str:nome>,明确参数类型为字符串
path('crea/<str:nome>/', creazione, name="creazione_passo1"),

注意事项

  • 请确保Schede模型的nome_scheda字段值唯一,否则可能出现跳转地址冲突的问题
  • 如果nome_scheda包含空格、特殊符号,想要生成更规范的URL,可以给模型新增slug字段,创建对象时通过django.utils.text.slugify方法把nome_scheda转为slug格式后存储,路由参数对应改为<slug:nome>即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:09:04