from django.shortcuts import render, get_object_or_404, redirect
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from .models import Autor, Libro
|
|
from .forms import AutorForm, LibroForm
|
|
|
|
|
|
@login_required
|
|
def principal(request):
|
|
return render(request, 'libros/index.html')
|
|
|
|
|
|
# Vistas para los autores
|
|
@login_required
|
|
def lista_autores(request):
|
|
autores = Autor.objects.all()
|
|
return render(request, 'libros/lista_autores.html', {'autores': autores})
|
|
|
|
|
|
@login_required
|
|
def detalle_autor(request, autor_id):
|
|
autor = get_object_or_404(Autor, pk=autor_id)
|
|
|
|
libros = Libro.objects.filter(autor=autor_id)
|
|
|
|
return render(request, 'libros/detalle_autor.html', {'autor': autor, 'libros': libros})
|
|
|
|
|
|
@login_required
|
|
def nuevo_autor(request):
|
|
if request.method == 'POST':
|
|
form = AutorForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lista_autores')
|
|
else:
|
|
form = AutorForm()
|
|
return render(request, 'libros/form_autor.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def editar_autor(request, autor_id):
|
|
autor = get_object_or_404(Autor, pk=autor_id)
|
|
if request.method == 'POST':
|
|
form = AutorForm(request.POST, request.FILES, instance=autor)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lista_autores')
|
|
else:
|
|
form = AutorForm(instance=autor)
|
|
return render(request, 'libros/form_autor.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def eliminar_autor(request, autor_id):
|
|
autor = get_object_or_404(Autor, pk=autor_id)
|
|
autor.delete()
|
|
return redirect('lista_autores')
|
|
|
|
|
|
# Vistas para los libros
|
|
@login_required
|
|
def lista_libros(request):
|
|
libros = Libro.objects.all()
|
|
return render(request, 'libros/lista_libros.html', {'libros': libros})
|
|
|
|
|
|
@login_required
|
|
def detalle_libro(request, libro_id):
|
|
libro = get_object_or_404(Libro, pk=libro_id)
|
|
return render(request, 'libros/detalle_libro.html', {'libro': libro})
|
|
|
|
|
|
@login_required
|
|
def nuevo_libro(request):
|
|
if request.method == 'POST':
|
|
form = LibroForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lista_libros')
|
|
else:
|
|
form = LibroForm()
|
|
return render(request, 'libros/form_libro.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def editar_libro(request, libro_id):
|
|
libro = get_object_or_404(Libro, pk=libro_id)
|
|
if request.method == 'POST':
|
|
form = LibroForm(request.POST, request.FILES, instance=libro)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lista_libros')
|
|
else:
|
|
form = LibroForm(instance=libro)
|
|
return render(request, 'libros/form_libro.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def eliminar_libro(request, libro_id):
|
|
libro = get_object_or_404(Libro, pk=libro_id)
|
|
libro.delete()
|
|
return redirect('lista_libros')
|