views.py comparacion del manager con la vista
class ListarAutores(ListView):
context_object_name='lista_autores'
template_name='autor/lista.html'
def get_queryset(self):
return Autor.objects.all()
models.py modelo base
class Persona(models.Model):
nombre = models.CharField(
max_length=50
)
apellidos = models.CharField(
max_length=50
)
nacionalidad = models.CharField(
max_length=30
)
edad = models.PositiveIntegerField()
def __str__(self):
return str(self.id)+'-'+ self.nombre + '-'+ self.apellidos
Conectar Modelo con el Manager
models.py
#importamos el manager
from .managers import AutorManager
class Persona(models.Model):
nombre = models.CharField(
max_length=50
)
apellidos = models.CharField(
max_length=50
)
nacionalidad = models.CharField(
max_length=30
)
edad = models.PositiveIntegerField()
obejcts=AutorManager() #sirve para conectar el manager con el modelo Autor
def __str__(self):
return str(self.id)+'-'+ self.nombre + '-'+ self.apellidos
managers.py
from django.db import models
class AutorManager(models.Manager):
""" managers para el modelo autor"""
def listar_autores(self):
# el self de abajo es equivalente a Autor.objects.all()
return self.all()
views.py
from django.shortcuts import render
from django.views.generic import (
ListView,
)
from .models import Autor
class ListarAutores(ListView):
context_object_name='lista_autores'
template_name='autor/lista.html'
def get_queryset(self):
return Autor.objects.listar_autores()
urls.py
from .import views
app_name = "autor_app"
urlpatterns = [
path(
'autores/',
views.ListarAutores.as_view(),
name="inicio"
),
]
templates/autor/lista.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>lista de autores</h1>
{% for a in lista_autores %}
<li>
{{a.nombre}}
</li>
{% endfor %}
</body>
</html>

Última modificación: 31 Jul 2023 21:16
No hay comentarios aún
Sé el primero en comentar este artículo