from django.shortcuts import render, redirect from django.contrib import messages from django.forms.models import model_to_dict from django.http import JsonResponse from .models import Quote, Suggester from .forms import SuggestionForm def show_quote(request, author_slug=None): if author_slug is None: quote = Quote.objects.order_by('?').first() else: quote = Quote.objects.filter( author__slug=author_slug).order_by('?').first() return render(request, 'lazaro_quotes/show_quote.html', {"quote": quote}) def get_quote_json(request, author_slug=None): if author_slug is None: quote = Quote.objects.order_by('?').first() else: quote = Quote.objects.filter( author__slug=author_slug).order_by('?').first() return JsonResponse(quote.as_dict()) def get_all_quotes_json(request): quotes = Quote.objects.all() result = {} for i, quote in enumerate(quotes): result[i] = quote.as_dict() return JsonResponse(result) def suggest_quote_form(request): if request.method == 'POST': form = SuggestionForm(request.POST) if form.is_valid(): suggester, created = Suggester.objects.get_or_create(defaults={"name": form.cleaned_data['suggester_name']}, email=form.cleaned_data['suggester_email']) suggestion = form.save(commit=False) suggestion.suggester = suggester suggestion.save() messages.success( request, "Tu sugestión se ha enviado correctamente") return redirect('lazaro_quotes:show_quote') else: form = SuggestionForm() return render(request, 'main/show_form.html', {'form_header': '¡Mándanos alguna frase celebre/graciosa que hayas escuchado en la FIC!', 'form': form})