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 originalurlpatterns = patterns('',
url(r'^$', 'catalogo.views.home', name='home'),
url(r'^catalogo/detalle/(?P<slug>[^/]+)/$', tu_vista_aqui),
# ...
)
Código Python:
Ver originaldef tu_vista_aqui(response, slug=None):
obj = get_object_or_404(MyModel, slug=slug)
return render_to_response(template, ...)
Mira incluso veo en tu URLConf que tienes lo siguiente:
Código Python:
Ver original#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 originalurl(r'^catalogo/(?P<slug>[^/]+/$)', 'catalogo.views.catalog', name='catalog'),