Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/12/2012, 23:03
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: django urls por base de datos

Ok, voy a tener que ser un poco duro aquí.

Mira, lo que estas haciendo lo estas haciendo terriblemente mal!

1.- Estas haciendo un query en las URLs
2.- Por cada producto estas haciendo una URL estatica! cuando lo correcto seria hacer una URL dinámica.
3.- Obviamente que esto se hace una sola vez por que el urlpatters solamente se crea una vez.

Te recomiendo varias cosas:
1.- Leer sobre django. Ya sea el django-book o la guía de maestros del web.
2.- Leer sobre python y expresiones regulares.
3.- Python != Ruby, incluso dentro de Ruby no harías algo como lo que acabas de postear.

La manera correcta de hacer esto seria mas o menos la siguiente:
Código Python:
Ver original
  1. urlpatterns = patterns('',
  2.     url(r'^$', 'catalogo.views.home', name='home'),
  3.     url(r'^catalogo/detalle/(?P<slug>[^/]+)/$', tu_vista_aqui),
  4. # ...
  5. )

Código Python:
Ver original
  1. def tu_vista_aqui(response, slug=None):
  2.     obj = get_object_or_404(MyModel, slug=slug)
  3.     return render_to_response(template, ...)

Mira incluso veo en tu URLConf que tienes lo siguiente:
Código Python:
Ver original
  1. #url(r'^catalogo/(?P<slug>)', 'catalogo.views.catalog', name='catalog'),

Obviamente esa expresion no va a funcionar. Necesitas capturar algo en la expresión regular.
Código Python:
Ver original
  1. url(r'^catalogo/(?P<slug>[^/]+/$)', 'catalogo.views.catalog', name='catalog'),

Última edición por razpeitia; 19/12/2012 a las 12:18