Saltar al contenido

Success_url en UpdateView, basado en el valor pasado

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 objectpor 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *