猿问

列出特定电影院的所有电影 - 外键 Django

我是 Django 的新手,我有一个关于模型和外键的问题。


我有两个模型:电影和电影。一个Cinema可以有多个电影,所以我在Movie模型中放置了cinema的外键。


class Cinema(models.Model):

    name = models.CharField(max_length=255)

    address = models.CharField(max_length=255)


class Movie(models.Model):

    title = models.CharField(max_length=255)

    description = models.CharField(max_length=255)

    posting_cinema = models.ForeignKey('cinemas.Cinema', on_delete=models.CASCADE, null=True)

现在我想列出特定电影院的所有电影。我该怎么做?


这个想法是这样的:用户点击一个电影院,它会打开一个包含电影院详细信息和“看电影”按钮的页面。如果用户单击此按钮,则会打开一个新页面,我希望在那里列出该特定电影院的电影。


我试图找出一些解决方案,但遗憾的是我被卡住了。我在想 Movie.objects.filter(#something) 但我不确定


RISEBY
浏览 190回答 1
1回答

SMILET

对于给定的,Cinema您可以使用:some_cinema.movie_set.all()或者你可以给出ForeignKey一个更有意义的名字来反向查询:class Movie(models.Model):    title = models.CharField(max_length=255)    description = models.CharField(max_length=255)    posting_cinema = models.ForeignKey(        'cinemas.Cinema',        on_delete=models.CASCADE,        null=True,        # here we give the reverse relation a name        related_name='movies'    )然后你可以查询这个:some_cinema.movies.all()另一种方法是基于 过滤ForeignKey,例如:Movie.objects.filter(posting_cinema=some_cinema)或者如果你有电影院的主键:Movie.objects.filter(posting_cinema__pk=some_cinema_pk)(例如,这可以保存对Cinema对象的提取,如果您从不真正需要它Cinema本身)。
随时随地看视频慕课网APP

相关分类

Python
我要回答