首页 > 解决方案 > 使用从同一视图创建的参数的 CreateView 重定向

问题描述

我有这个 CreateView,它为我创建了一个对象,在创建它之后,我希望它通过它的“nome_scheda”(一个文本字段)在该对象中呈现我。

视图.py

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)

网址.py

path('crea/<nome>/', creazione, name="creazione_passo1"),

标签: djangodjango-viewsdjango-class-based-viewscreate-view

解决方案


您可以覆盖该.get_success_url(…)方法以返回要由浏览器重定向到的 URL:

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):
        return reverse('creazione_passo1', kwargs={ 'nome': self.object.nome })

推荐阅读