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('libros: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('libros: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('libros: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('libros: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('libros: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('libros:lista_libros')