【发布时间】:2019-12-09 18:55:15
【问题描述】:
我正在做一个电影预订项目,我想在其中显示电影及其电影和可从此代码获得的时间段我想获得具有不同的电影名称
def movies(request, id):
cin = shows.objects.filter(movie_id=id).values_list('cinema_id',flat=True).distinct()
print(cin)
#cin = shows.objects.filter(movie_id=id)
movies = movie.objects.filter(movie_id=id)
show = shows.objects.filter(movie_id=id)
context = {
'movies':movies[0],
'show':show,
'cin':cin,
}
return render(request, "movies.html", context )
这是我设置了 Pk、Fk 键的 model.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here
class cinema(models.Model):
cinema_id=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_id=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):
show_id=models.AutoField(primary_key='true')
cinema_id=models.ForeignKey('cinema',on_delete=models.CASCADE)
movie_id=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_id.cinema_name +" | "+ self.movie_id.movie_name +" | "+ self.time
示例 DATABASE accounts_shows enter image description here
【问题讨论】:
-
在阅读你的整个代码之前,我注意到你写了
'true'和它的True没有引号,第一个字母大写。 -
@Moha369:但这可能并不重要,因为检查真实性更像 Pythonic,但我绝对同意应该使用
True:) -
为什么上下文是
movies[0]? @WillemVanOnsem 我们应该在回答问题之前检查所有不正确的事情:D
标签: django django-models django-templates django-views