65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
from django.shortcuts import render
|
|
from django.http import HttpResponse
|
|
from django.db.models import F
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
|
|
from .models import Movie, Person
|
|
|
|
|
|
def home(request):
|
|
context = {}
|
|
return render(request, 'home.html', context)
|
|
|
|
|
|
def movies(request, args=''):
|
|
if args:
|
|
try:
|
|
id = int(args)
|
|
return by_id(request, id)
|
|
except ValueError:
|
|
pass
|
|
|
|
count = 0
|
|
data = Movie.objects.to_dict(args.strip())
|
|
directors = Person.objects.directors()
|
|
if data:
|
|
count = (len(data) - 1) * 4 + (len(data[-1]))
|
|
context = {'movies': data, 'args': args, 'count': count,
|
|
'directors': directors, 'selected_director': ''}
|
|
return render(request, 'movies.html', context)
|
|
|
|
|
|
def by_id(request, id):
|
|
count = 0
|
|
data = Movie.objects.to_dict(id=id)
|
|
directors = Person.objects.directors()
|
|
if data:
|
|
count = (len(data) - 1) * 4 + (len(data[-1]))
|
|
context = {'movies': data, 'args': id, 'count': count,
|
|
'directors': directors, 'selected_director': ''}
|
|
return render(request, 'movies.html', context)
|
|
|
|
|
|
def by_director(request, name):
|
|
data = Movie.objects.to_dict(director=name)
|
|
directors = Person.objects.directors()
|
|
count = (len(data) - 1) * 4 + (len(data[-1]))
|
|
context = {'movies': data, 'args': 'by_director', 'count': count,
|
|
'directors': directors, 'selected_director': name}
|
|
return render(request, 'movies.html', context)
|
|
|
|
|
|
def addcount(request, id):
|
|
response = ''
|
|
if id:
|
|
try:
|
|
movie = Movie.objects.get(id=id)
|
|
count = movie.count
|
|
movie.count = F('count') + 1
|
|
movie.save()
|
|
response = count + 1
|
|
except Movie.DoesNotExist:
|
|
pass
|
|
|
|
return HttpResponse(response)
|