Pregunta

Digamos que tengo el URLCONF de un proyecto que incluye myappes 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?

¿Fue útil?

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
scroll top