Я пытаюсь создать сайт для продажи билетов в кинотеатр, в котором я учусь в школе, и я сделал две модели: 1 - Movie
и 2 TimeSlot
.Movie.time_slot
имеет отношение manytomany
к таблице TimeSlot
.
То, что я хочу, это отобразить временной интервал для фильма в зависимости от Movie.title
и от того, что day
это.
Например, я хочу, чтобы в строке Time Slots:
ниже отображалось:
Понедельник: timeslot1.value
, timeslot2.value
, timeslot3.value
, timeslot4.value
.что текущий день Monday
и timeslots
выше не были empty
или null

Вот мой models.py
:
from django.db import models
from django.contrib.auth.models import AbstractUser
from PIL import Image
class TimeSlot(models.Model):
moviename = models.CharField(max_length=100)
day = models.CharField(max_length = 9)
timeslot1 = models.CharField(max_length = 20,blank = True, null = True)
timeslot2 = models.CharField(max_length = 20,blank = True, null = True)
timeslot3 = models.CharField(max_length = 20,blank = True, null = True)
timeslot4 = models.CharField(max_length = 20,blank = True, null = True)
timeslot5 = models.CharField(max_length = 20,blank = True, null = True)
timeslot6 = models.CharField(max_length = 20,blank = True, null = True)
def __str__(self):
return f'{self.moviename} timeslot for {self.day}'
class Movie(models.Model):
title = models.CharField(max_length= 100)
description = models.TextField()
release_date = models.CharField(max_length=20)
genre = models.CharField(max_length=100)
time_slot = models.ManyToManyField(TimeSlot, related_name=None)
available_seats = models.PositiveSmallIntegerField(default= 300)
ticket_price = models.DecimalField(max_digits=6,decimal_places=2)
image = models.ImageField(default = 'default.jpg', upload_to = 'media/movie_posters')
def __str__(self):
return f'{self.title} Info'
def save(self, *args, **kwargs):
super(Movie, self).save(*args, **kwargs)
image = Image.open(self.image.path)
if image.height > 200 or image.width > 200:
output_size = (200, 200)
image.thumbnail(output_size)
image.save(self.image.path)
Вот мой views.py
:
from django.shortcuts import render
from .models import Movie,TimeSlot
pagetitle = 'Order Tickets Online'
def home(request):
context = {
'movielist': Movie.objects.all(),
'timeslot': TimeSlot.objects.all(),
'title': pagetitle
}
return render(request, 'movies/home.html', context)
def about(request):
return render(request, 'movies/about.html')
А вот мой шаблон home.html:
{% block content %}
{% for movie in movielist %}
<article class="media content-section">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="#" style="font-size: 30px"> {{ movie.title}}</a>
<small class="text-muted" >Showing on: {{ movie.release_date }}</small>
</div>
<img src="{{movie.image.url}}" alt="">
<p class="article-content">
<strong>Movie Description: </strong>{{ movie.description }} <br>
<strong>Genre: </strong>{{ movie.genre }} <br>
<strong>Time Slots: </strong><br>
<strong>Available Seats: </strong>{{ movie.available_seats }} <br>
<strong>ticket_price: </strong>{{ movie.ticket_price }} <br>
</p>
</div>
</article>
{% endfor %}
{% endblock %}
Любой, кто может вести меня до этоговещь работает?Новичок в Python здесь, спасибо!
Вот как это выглядит внутри моего django administrator
и под Movie
приложения: 
И внутри Time slots
В таблице приведены данные: 
при нажатии на заголовок: 
Вот как это выглядитвнутри таблицы фильмов:
