from django.shortcuts import render
import random
# Create your views here.
from django.http import HttpResponse
from django.db.models import Count
from django.shortcuts import redirect
from apps.random_simpsons.models import SimpsonsData
def hello(request):
return HttpResponse('
Hello Django!
')
def episode_generator(request):
simpsons_data_object = SimpsonsData.objects.using('simpsons_db')
boolean_restart = True;
while (boolean_restart):
maximum_number_of_seasons = simpsons_data_object.aggregate(unique_season=Count('season', distinct=True))['unique_season']
random_seasons = random.randint(1, maximum_number_of_seasons)
print("random season: " + str(random_seasons))
maximum_number_of_episodes = simpsons_data_object.filter(season=random_seasons).count()
random_episode = random.randint(1, maximum_number_of_episodes)
print("random episode: " + str(random_episode))
episode_seen = simpsons_data_object.filter(season=random_seasons, episode=random_episode).values('seen')[0]['seen']
if not(episode_seen):
boolean_restart = False
else:
print("episode "+str(random_episode)+" from season "+str(random_seasons)+" already seen")
random_url = simpsons_data_object.filter(season=random_seasons, episode=random_episode).values('url')[0]['url']
#Set episode as seen
# It will still update an already seem episode but it works and I'm lazy
simpsons_data_object.filter(season=random_seasons, episode=random_episode).values('seen').update(seen=True)
return redirect(str(random_url))