from django.views.generic import ListView
from savebookmarks.models import Marcador
class MarcadoresList(ListView):
model = Marcador
Ya está, tenemos una vista que hereda de ListView en la que lo único que tenemos que hacer es decirle cuál es el modelo que se corresponde con los objetos que queremos listar.
En savebookmarks/urls.py, la invocamos con el método as_view() (que devuelve una respuesta adecuada como objeto HttpResponse)
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.MarcadoresList.as_view()),
]
Finalmente, necesitaremos una plantilla o template que muestre los objetos que está recuperando la ListView para nosotros.
Para que Django encuentre las plantillas, vamos a editar el settings.py dejando así la clave DIRS (en TEMPLATES):
'DIRS': os.path.join(SETTINGS_PATH, 'templates'),
(Se supone que con el ajuste 'APP_DIRS': True, Django ya es capaz de encontrar nuestras templates, pero parece que no funciona)
A continuación, escribimos la template en /savebookmarks/templates/savebookmarks/marcador_list.html:
<h2>Marcadores</h2>
<ul>
{% for m in object_list %}
<li><a target="_blank" href="{{m.url}}">{{ m.titulo }}</a></li>
{% endfor %}
</ul>
La ListView nos proporciona una lista de objetos, object_list, sobre la que iteremos para mostrarlos.
No hay comentarios:
Publicar un comentario