Django 获取有条件的数据
我正在做一个电影预订项目,在这个项目中,我想了解特定电影院的时间Django 获取有条件的数据,django,django-templates,django-views,Django,Django Templates,Django Views,我正在做一个电影预订项目,在这个项目中,我想了解特定电影院的时间 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':c
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文件我能做些什么来打发看电影的时间吗
<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>
我现在获得的输出(附图片)在Show model中添加相关名称: models.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')
Views.py
movies = Movie.objects.get(movie=id) # get movie
cin = Cinema.objects.filter(cinema_show__movie=movies).prefetch_related('cinema_show') # get all cinema
模板:
{% for i in cin %}
<p>(i.cinema_name)</p> # cinema name
{% for j in i.cinema_show.all %}
<p> (j.time)</p> # all show
{% endfor %}
{% endfor %}
{%for cin%中的i}
(i.电影院名称)#电影院名称
{i.cinema_show.all%}
(j.time)#所有节目
{%endfor%}
{%endfor%}
您可能可以这样做:
<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>
{%用于在movies.shows\u set.all%}
电影院{{show.Cinema}
时间:{{show.Time}
{%endfor%}
在这里,我使用从
Movie
到Shows
使用Movie.Shows\u set。所有和show
对象都有您需要的一切(如电影院和放映时间)。感谢这项工作,我添加了.distinct(),因为我用它获得了重复的值:cin=cinema.objects.filter(cinema\u show\u Movie=movies).prefetch_related('cinema_show').distinct()这是正确的方法吗?不管怎样,它都能工作:)
<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>