¿Cómo configurar las vistas genéricas en las URL de una aplicación.
-
29-10-2019 - |
Pregunta
Digamos que tengo el URLCONF de un proyecto que incluye myapp
es urlconf:
urlpatterns = patterns('',
(r'^myapp', include(myapp.urls)),
)
y un myapp/urls.py
Con algunas rutas definidas:
urlpatterns = patterns('myapp.views',
(r'^manager$', 'manager_view'),
)
Quiero usar vistas genéricas en myapp
(es decir, mostrar una lista de elementos), pero si lo defino en myapp/urls.py
como esto:
items_list = {
'queryset': Item.objects.all(),
}
urlpatterns = patterns('myapp.views',
(r'^manager$', 'manager_view'),
(r'^items/(?P<page>[0-9]+)$', 'django.views.generic.list_detail.object_list',
items_list),
)
Esto no funcionará por el myapp.views
prefijo. Por supuesto, podría poner los patrones de vistas genéricas en las URL del proyecto.
Entonces, ¿cómo puedo usar vistas genéricas en la URLCONF de una aplicación?
Solución
No necesita usar el prefijo en absoluto: puede especificar la ruta completa a cada una de sus vistas para cada URL:
urlpatterns = patterns('',
(r'^manager$', 'myapp.views.manager_view'),
(r'^items/(?P<page>[0-9]+)$', 'django.views.generic.list_detail.object_list',
items_list),
)
Alternativamente, puede tener múltiples platos URL en un solo URLCONF y concatenarlos:
urlpatterns = patterns('myapp.views',
(r'^manager$', 'manager_view'),
)
urlpatterns += patterns('django.views.generic',
(r'^items/(?P<page>[0-9]+)$', 'list_detail.object_list',
items_list),
)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow