Este grupo de redactores ha pasado mucho tiempo investigando para darle espuestas a tus búsquedas, te brindamos la respuestas por esto esperamos resultarte de mucha apoyo.
Solución:
Crear una clase MyUpdateView
heredado de UpdateView
y anular get_success_url
método:
class MyUpdateView(UpdateView):
def get_success_url(self):
pass #return the appropriate success url
También me gusta pasar parámetros como template_name y model dentro de la vista de clase heredada, pero no en .as_view()
en urls.py
Tenía el mismo problema. Pude obtener el parámetro de self.kwargs como mencionó Dima:
def get_success_url(self):
if 'slug' in self.kwargs:
slug = self.kwargs['slug']
else:
slug = 'demo'
return reverse('app_upload', kwargs='pk': self._id, 'slug': slug)
Definir get_absolute_url(self)
en tu modelo Ejemplo
class Poll(models.Model):
question = models.CharField(max_length=100)
slug = models.SlugField(max_length=50)
# etc ...
def get_absolute_url(self):
return reverse('poll', args=[self.slug])
Si tu PollUpdateView(UpdateView)
carga una instancia de ese modelo como object
por defecto buscará un get_absolute_url()
método para averiguar a dónde redirigir después de la POST
. Después
url(r'^polls/(?Pw+)/, UpdateView.as_view(
model=Poll, template_name='generic_form_popup.html'),
debería hacer.
Te mostramos comentarios y valoraciones
Si posees alguna duda o disposición de acrecentar nuestro sección eres capaz de ejecutar un comentario y con gusto lo interpretaremos.