Foros del Web » Programando para Internet » Python »

Error en redirect

Estas en el tema de Error en redirect en el foro de Python en Foros del Web. Tengo la siguiente vista: Código: class AnuncioDetalle(ListView): template_name = "anuncios/anuncio_detalle.html" queryset = Anunciovw.objects.all() def get_context_data(self, **kwargs): context = super(AnuncioDetalle, self).get_context_data(**kwargs) context['anuncio'] = Anunciovw.objects.get(pk=self.kwargs['pk']) if context['anuncio'].slug ...
  #1 (permalink)  
Antiguo 06/04/2018, 06:24
 
Fecha de Ingreso: julio-2010
Mensajes: 35
Antigüedad: 8 años
Puntos: 1
Error en redirect

Tengo la siguiente vista:

Código:
class AnuncioDetalle(ListView):

    template_name = "anuncios/anuncio_detalle.html"
    queryset = Anunciovw.objects.all()

    def get_context_data(self, **kwargs):
        context = super(AnuncioDetalle, self).get_context_data(**kwargs)

        context['anuncio'] = Anunciovw.objects.get(pk=self.kwargs['pk'])
        
        if context['anuncio'].slug != self.kwargs['slug']:
            raise Http404('')
        if context['anuncio'].activo != True:
            return redirect('index')

        context['categorias'] = Categoria.objects.all()
        context['imagenes'] = Imagen.objects.filter(anuncio_id=self.kwargs['pk'])
        return context
Pretendo que si el anuncio está desactivado, se haga una redirección 301 a la página index del sitio. Este código me genera el error: Reverse for 'index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
  #2 (permalink)  
Antiguo 07/04/2018, 01:11
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.796
Antigüedad: 8 años, 10 meses
Puntos: 213
Respuesta: Error en redirect

Saludo

¿En el archivo url.py principal y en de la app cómo tal
cómo estan las configuraciones para la ruta?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 07/04/2018 a las 01:19
  #3 (permalink)  
Antiguo 07/04/2018, 04:41
 
Fecha de Ingreso: julio-2010
Mensajes: 35
Antigüedad: 8 años
Puntos: 1
Respuesta: Error en redirect

Cita:
Iniciado por mortiprogramador Ver Mensaje
Saludo

¿En el archivo url.py principal y en de la app cómo tal
cómo estan las configuraciones para la ruta?

Las rutas de las url son estas:

Código:
urlpatterns = [
    url(r'^$', index.as_view(), name="index"),
    url(r'^index/$', RedirectView.as_view(url="/"), name="redirect"),
    url(r'^submit/$', submit),
    url(r'^signalerok/$', signalerok),
    url(r'^supprimerok/$', supprimerok),
    url(r'^info_p_lite/$', anuncioinfo),
]
  #4 (permalink)  
Antiguo 07/04/2018, 13:04
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.796
Antigüedad: 8 años, 10 meses
Puntos: 213
Respuesta: Error en redirect

En ese caso, intenta dejar en comentario la segunda línea de las urls y probar,
si no funciona, activala y ahora en la vista, en la parte del redirect, no uses la palabra index,
sino la palabra redirect (que vendría a ser el name que esta en urls) y prueba nuevamente.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 07/04/2018, 15:05
 
Fecha de Ingreso: julio-2010
Mensajes: 35
Antigüedad: 8 años
Puntos: 1
Respuesta: Error en redirect

Cita:
Iniciado por mortiprogramador Ver Mensaje
En ese caso, intenta dejar en comentario la segunda línea de las urls y probar,
si no funciona, activala y ahora en la vista, en la parte del redirect, no uses la palabra index,
sino la palabra redirect (que vendría a ser el name que esta en urls) y prueba nuevamente.

Ahora el error que me aparece es este:

dictionary update sequence element #0 has length 0; 2 is required
  #6 (permalink)  
Antiguo 07/04/2018, 16:09
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.796
Antigüedad: 8 años, 10 meses
Puntos: 213
Respuesta: Error en redirect

Revisa views.py

Por ej

Código Python:
Ver original
  1. # podría estar así
  2. return render(request, 'page.ext', {'items', items})
  3.  
  4. # dejarlo así
  5. return render(request, 'page.ext', {'items': items})


O directamente en el render

Código Python:
Ver original
  1. return redirect('index', items='items')

__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 07/04/2018 a las 16:16
  #7 (permalink)  
Antiguo 08/04/2018, 00:34
 
Fecha de Ingreso: julio-2010
Mensajes: 35
Antigüedad: 8 años
Puntos: 1
Respuesta: Error en redirect

Cita:
Iniciado por mortiprogramador Ver Mensaje
Revisa views.py

Por ej

Código Python:
Ver original
  1. # podría estar así
  2. return render(request, 'page.ext', {'items', items})
  3.  
  4. # dejarlo así
  5. return render(request, 'page.ext', {'items': items})


O directamente en el render

Código Python:
Ver original
  1. return redirect('index', items='items')



Al final lo he resuelto de manera un poco torticera... dentro del if he introducido el código de la vista index. Es código redundate, pero funciona.

Muchísimas gracias por el soporte que me has brindado.



La zona horaria es GMT -6. Ahora son las 02:06.