He estado tratando de encontrar la forma de definir un espacio de nombres URL anidado (que look:like:this
) en un Django URLConf.Definición de espacios de nombres anidados en un URLConf, para revertir las URL de Django: ¿alguien tiene un ejemplo convincente?
Antes de esto, me di cuenta de cómo hacer un espacio de nombres URL básica y se acercó con this simple example snippet, que contiene lo que se podría poner en un archivo urls.py
:
from django.conf.urls import patterns, include, url
# you can only define a namespace for urls when calling include():
app_patterns = patterns('',
url(r'^(?P<pk>[\w\-]+)/$', 'yourapp.views.your_view_function',
name="your-view"),
)
urlpatterns = patterns('',
url(r'^view-function/', include(app_patterns,
namespace='yournamespace', app_name='yourapp')),
)
"""
You can now use the namespace when you refer to the view, e.g. a call
to `reverse()`:
# yourapp/models.py
from django.core.urlresolvers import reverse
# ...
class MyModel(models.Model):
def get_absolute_url(self):
return reverse('signalqueue:exception-log-entry', kwargs=dict(pk=self.pk))
"""
... w/r/t de la deducción de los cuales the Django documentation fue, en este caso, nada útil. Si bien el documento de Django es fantástico en todos los demás aspectos, y esta es una excepción a la regla, hay incluso menos información sobre la definición de espacios de nombres de URL anidados.
En lugar de publicar mis intentos espagificados † para resolver esto, pensé que podría preguntar si alguien tiene, o sabe de, un ejemplo directamente coherente y/o autoexplicativo de un URLconf que define un espacio de nombres anidado, que podría compartir.
Específicamente, tengo curiosidad acerca de las partes anidadas que anteponen la vista: necesitan todas instaladas aplicaciones Django?
†) Para los curiosos, he aquí un ejemplo (probablemente algo inescrutable): http://imgur.com/NDn9H. Estaba intentando que las URL impresas en rojo y verde en la parte inferior se llamaran testapp:views:<viewname>
en lugar de solo testapp:<viewname>
.
Niza, que es de hecho sencillo. ¡Gracias! – fish2000