Estoy buscando un buen tutorial para espacios de nombres de URL en Django. Encuentro que la documentación oficial es un poco escasa, carece de buenos ejemplos. Encontré similar question aquí en la pila, pero las respuestas tampoco me ayudaron a comprender completamente el tema.¿Alguien sabe bien el tutorial de espacios de nombres de URL de Django?
Respuesta
De acuerdo, los documentos para esto son bastante confusos. Aquí está mi lectura de la misma (Nota: todo el código es no probado!):
En apps.help.urls
:
urlpatterns = [
url(r'^$', 'apps.help.views.index', name='index'),
]
En su principal urls.py
:
urlpatterns = [
url(r'^help/', include('apps.help.urls', namespace='help', app_name='help')),
url(r'^ineedhelp/', include('apps.help.urls', namespace='otherhelp', app_name='help')),
]
En su plantilla:
{% url help:index %}
debe producir la url /help/
.
{% url otherhelp:index %}
debe producir la url /ineedhelp/
.
{% with current_app as 'otherhelp' %}
{% url help:index %}
{% endwith %}
también debería producir la url /ineedhelp/
.
Del mismo modo, reverse('help:index')
debe producir /help/
.
reverse('otherhelp:index')
debe producir /ineedhelp/
.
también debe producir /ineedhelp/
.
Como dije, esto se basa en mi lectura de los documentos y mi familiaridad existente con cómo las cosas tienden a funcionar en Django-land. No me he tomado el tiempo de probar esto.
¿por qué necesitamos app_name y namespace ambos establecidos? Solo me preguntaba. Parece que también funciona cuando no se establece el nombre_aplicación –
Porque los documentos [me llevaron a creer que eran necesarios] (https://docs.djangoproject.com/en/1.4/topics/http/urls/#defining-url-namespaces) Incluso si los documentos son incorrectos o engañosos, probablemente sea más a prueba de futuro incluir 'app_name', como está documentado, en caso de que el comportamiento cambie en el futuro para coincidir con los documentos. Si realmente quieres saber por qué, tendrías que leer el código. –
Buena sugerencia Normalmente trato de leer la mayor cantidad posible de fuentes, pero no pude encontrar directamente la parte relacionada, voy a investigar un poco más. Lea antes un buen artículo que dice: La fuente nunca miente, pero el manual puede hacerlo. Básicamente le dijo a la gente que leyera la fuente si encontraban un problema o usaban la API incorrectamente jeje. –
Esto es de la documentación
(r'^help/', include('apps.help.urls', namespace='foo', app_name='bar')),
Tal vez debería ser más específico acerca de lo que está tratando de hacer.
- 1. ¿Alguien sabe bien el tutorial Object Constraint Language (OCL)?
- 2. ¿Alguien sabe algún buen tutorial de silverlight?
- 3. ¿Alguien sabe algún tutorial stm32 muy básico?
- 4. ¿Alguien sabe de algún buen tutorial para Slick 2D lib?
- 5. Definición de espacios de nombres anidados en un URLConf, para revertir las URL de Django: ¿alguien tiene un ejemplo convincente?
- 6. ¿Alguien sabe el estado actual de Graphics32?
- 7. ¿Alguien sabe de alguna colección de sprites?
- 8. Invertir URL con espacios de nombres en Django: varias instancias de la misma aplicación
- 9. ¿Alguien realmente está usando espacios de nombres css?
- 10. Tutorial de Django Photologue
- 11. Espacios de nombres en JSON
- 12. ¿Alguien sabe de un generador de paquetes?
- 13. ¿Existe una convención de nombres bien establecida para los espacios de nombres PHP?
- 14. ¿Alguien sabe cómo funciona el diseño de Pinterest.com?
- 15. ¿Alguien sabe algo acerca de OLAP Internals?
- 16. ¿Por qué hay URL en espacios de nombres XML?
- 17. ¿Para qué sirve el parámetro de espacios de nombres MapRoute?
- 18. ¿Alguien sabe dónde obtener el código real de Cray PVP?
- 19. ¿Squeak admite espacios de nombres?
- 20. ¿Alguien sabe de un buen explorador OData?
- 21. Animaciones de espacios de nombres
- 22. ¿Alguien sabe de un tipo de dinero en .NET?
- 23. ¿Alguien sabe cómo implementar el protocolo NSFastEnumeration?
- 24. ¿Alguien sabe qué significa el fragmento de código a continuación?
- 25. ¿Alguien sabe de un ejemplo de API de node.js linkedin?
- 26. ¿Alguien sabe de una herramienta de análisis de CSS?
- 27. ¿Alguien sabe de un proveedor de compilación de TeamCity alojado?
- 28. ¿Alguien sabe de una aplicación de traducción colaborativa de OpenSource?
- 29. Espacios de nombres en Delphi
- 30. StAX y espacios de nombres
Marcó url dispatcer doc en https://docs.djangoproject.com/en/1.3/topics/http/urls/#naming-url-patterns Le recomiendo leer toda la sección, porque si comprende el conceptos básicos sobre cómo funciona, entonces sería más fácil de entender – FallenAngel
@FallenAngel: mi punto aún se mantiene - en la documentación oficial no hay buenos ejemplos de uso de espacios de nombres. – minder