我正在做一个电影预订项目,在这个项目中我想安排特定电影院的时间
def movies(request, id):
cin = Cinema.objects.filter(shows__movie=id).distinct()
movies = Movie.objects.get(movie=id)
show = Shows.objects.filter(movie=id)
context = {
'movies':movies,
'show':show,
'cin':cin,
}
return render(request, "movies.html", context )
movies.html HTML文件,我可以做些什么来吸引上映时间吗?
<div class="card">
<img class="card-img-top" src="{{movies.movie_poster.url}}" alt="Card image cap">
<div class="card-body">
<h4 class="card-title">{{movies.movie_name}}</h4>
<p class="card-text">{{movies.movie_rating}}</p>
</div>
<ul class="list-group list-group-flush">
{% for cin in cin %}
<li class="list-group-item"><b>Cinema {{cin}}</b></li>
{% for show in show %}
<li class="list-group-item"> Time : {{show.time}}</li>
{% endfor %}
{% endfor %}
</ul>
</div>
models.py文件,因此您可以获得我的数据库结构的详细信息(我只想通过放映的电影来获取电影,但要根据电影院的情况而定)
class Cinema(models.Model):
cinema=models.AutoField(primary_key=True)
role=models.CharField(max_length=30,default='cinema_manager')
cinema_name=models.CharField(max_length=50)
phoneno=models.CharField(max_length=15)
city=models.CharField(max_length=100)
address=models.CharField(max_length=100)
user = models.OneToOneField(User,on_delete=models.CASCADE)
def __str__(self):
return self.cinema_name
class Movie(models.Model):
movie=models.AutoField(primary_key=True)
movie_name=models.CharField(max_length=50)
movie_des=models.TextField()
movie_rating=models.DecimalField(max_digits=3, decimal_places=1)
movie_poster=models.ImageField(upload_to='movies/poster', default="movies/poster/not.jpg")
def __str__(self):
return self.movie_name
class Shows(models.Model):
shows=models.AutoField(primary_key=True)
cinema=models.ForeignKey('Cinema',on_delete=models.CASCADE)
movie=models.ForeignKey('Movie',on_delete=models.CASCADE)
time=models.CharField(max_length=100)
seat=models.CharField(max_length=100)
price=models.IntegerField()
def __str__(self):
return self.cinema.cinema_name +" | "+ self.movie.movie_name +" | "+ self.time
答案 0 :(得分:1)
在“显示模型”中添加相关名称:
models.py
Reversi
Views.py
cinema=models.ForeignKey('Cinema',on_delete=models.CASCADE, related_name='cinema_show')
movie=models.ForeignKey('Movie',on_delete=models.CASCADE, related_name='movie_show')
模板:
movies = Movie.objects.get(movie=id) # get movie
cin = Cinema.objects.filter(cinema_show__movie=movies).prefetch_related('cinema_show') # get all cinema
答案 1 :(得分:0)
可能您可以这样:
<ul class="list-group list-group-flush">
{% for show in movies.shows_set.all %}
<li class="list-group-item"><b>Cinema {{show.cinema}}</b></li>
<li class="list-group-item"> Time : {{show.time}}</li>
{% endfor %}
</ul>
在这里,我使用Movie
从Shows
到movie.shows_set.all
使用reverse relation(or related objects)
,并且show
对象具有您需要的一切(如电影院和放映时间)。 / p>