亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

列出特定電影院的所有電影 - 外鍵 Django

列出特定電影院的所有電影 - 外鍵 Django

RISEBY 2021-09-11 10:07:59
我是 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) 但我不確定
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

對于給定的,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本身)。


查看完整回答
反對 回復 2021-09-11
  • 1 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號