Foros del Web » Programando para Internet » Python »

Como pasar PermanentRedirect a una Class-based-view

Estas en el tema de Como pasar PermanentRedirect a una Class-based-view en el foro de Python en Foros del Web. En realidad estoy empezando con Django y Python, estuve mirando como realizar una redirección permanente cuando requiero cambiar la url de algún articulo y que ...
  #1 (permalink)  
Antiguo 29/11/2012, 01:49
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 8 meses
Puntos: 5
Como pasar PermanentRedirect a una Class-based-view

En realidad estoy empezando con Django y Python, estuve mirando como realizar una redirección permanente cuando requiero cambiar la url de algún articulo y que en vez de darme un error 404 me redirecione al nuevo articulo, el slug queda guardado en la db y con la id se puede verificar que son el mismo objeto.

Esto seria un ejemplo de una vista genérica, la he sacado de django.es
Código Python:
Ver original
  1. from django.http import HttpResponsePermanentRedirect
  2. from django.shortcuts import get_object_or_404
  3.  
  4. def mi_vista(request, slug, id):
  5.     try:
  6.         negocio = Negocio.objects.get(slug=slug, id=id)
  7.     except ObjectDoesNotExist:
  8.         negocio = get_object_or_404(Negocio, id=id)
  9.         return HttpResponsePermanentRedirect(negocio.get_absolute_url())
  10.     # ...

De verdad agradezco si me pueden dar una mano, gracias.
  #2 (permalink)  
Antiguo 29/11/2012, 22:13
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Como pasar PermanentRedirect a una Class-based-view

No veo ninguna pregunta.

Pero supongo que quieres hacer algo igual o parecido a esto.

Otra cosa, ¿Que es lo que recibe la anterior url y que es lo que recibe la nueva?
  #3 (permalink)  
Antiguo 30/11/2012, 12:09
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Como pasar PermanentRedirect a una Class-based-view

Cita:
Iniciado por razpeitia Ver Mensaje
No veo ninguna pregunta.

Pero supongo que quieres hacer algo igual o parecido a [URL="http://stackoverflow.com/questions/3835519/dynamically-301-old-urls-to-new-url-pattern"]esto[/URL].

Otra cosa, ¿Que es lo que recibe la anterior url y que es lo que recibe la nueva?
La idea básicamente que cuando yo cambie la url de cualquier articulo la vieja url redireccione a la nueva 301.
Ejemplo:
Cita:
www.misitioweb.com/hoy-es-30-noviembre.html
www.sitioweb.com/hoy-es-30-de-noviembre.html
Mira exactamente tengo esto:
Código Python:
Ver original
  1. class PostDetail(DetailView):
  2.     model = Post
  3.     def get_object(self):
  4.         return get_object_or_404(Post, slug__exact=self.kwargs['slug'])
  5.     def get_context_data(self, **kwargs):
  6.         context = super(PostDetail, self).get_context_data(**kwargs)
  7.         place = self.get_object()
  8.         context['Fechas'] = Servidor.objects.filter(post_id=place.id)
  9.         return context
  10.  
  11. urls.py
  12. url(r'^noticia/(?P<slug>[-\w]+).html$', PostDetail.as_view(), name='articulo'),

No encuentro como pasarle una redireccion 301 permanente si la url ha cambiado.

Gracias nuevamente por tomarte el tiempo y contestar mis preguntas, lo valoro mucho.
  #4 (permalink)  
Antiguo 30/11/2012, 12:33
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Como pasar PermanentRedirect a una Class-based-view

Ok por el dominio no hay problema eso lo puedes configurar en el servidor web (no esta relacionado con python).

Para lo demás puedes usar redirect_to para usar tu viejo URLconf a uno nuevo.

Etiquetas: django, import
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:24.