Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 获取有条件的数据_Django_Django Templates_Django Views - Fatal编程技术网

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>