views.py
1.12 KB
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
from django.db.models.expressions import RawSQL
from django.shortcuts import render, get_object_or_404
# Create your views here.
from django.urls import reverse_lazy
from django.views.generic import CreateView
from persona.forms import PersonaForm
from persona.models import Persona
def persona_lista(request):
personas = Persona.objects.annotate(
edad=RawSQL("date('now')-fecha_nacimiento", params="")
).order_by('documento_identidad')
edad = request.GET.get('edad', None)
if edad:
personas = personas.filter(edad=int(edad))
return render(request, 'persona/lista_personas.html', {'personas': personas})
def persona_detalle(request, pk):
persona = get_object_or_404(Persona, id=pk)
return render(request, 'persona/detalle_persona.html', {'persona': persona})
class PersonaCreateView(PermissionRequiredMixin, CreateView):
model = Persona
form_class = PersonaForm
template_name = 'persona/crear.html'
success_url = reverse_lazy('persona-lista')
permission_required = ('persona.add_persona',)