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

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

Django - 通過多個外鍵關系檢索另一個模型中的字段

Django - 通過多個外鍵關系檢索另一個模型中的字段

LEATH 2021-12-09 10:45:49
以下示例數據庫存儲新聞帖子和每條新聞的相關信息。我有興趣檢索與每個新聞相關的主題。問題是,它們存儲在具有復雜關系的不同表中。每個新聞都newsid在表中分配了一個NewsFeed:class NewsFeed(models.Model):      newsid= models.OneToOneField('NewsSub',                    on_delete=models.CASCADE, db_column='newsid',                    primary_key=True)      def __str__(self):        return str(self.newsid)newsid類中的字段NewsFeed和模型之間定義了一對一的關系NewsSub:class NewsSub(models.Model):      newsid = models.BigIntegerField(primary_key=True)在另一個類中NewsTopic,foreignKey定義了字段newsid與模型之間的關系NewsSub:class NewsTopic(models.Model):      newsid = models.ForeignKey(NewsSub, on_delete=models.DO_NOTHING,              db_column='newsid')      topicid = models.ForeignKey(NewsLabel, on_delete=models.DO_NOTHING,              db_column='topicid', related_name = 'topic')在NewsTopicdb表中,每一個newsid可能對應多個topicid。最后,topicid類的字段NewsTopic與模型相關NewsLabel:class NewsLabel(models.Model):      topicid = models.BigIntegerField(primary_key=True)      topiclabel = models.CharField(max_length=100)      def __str__(self):        return self.topiclabel在NewsLabeldb 表中,每個toicid對應一個唯一的topiclabel.我的目標是獲取topiclabel與每個相關聯的(一個或多個)NewsFeed對象,通過查詢newsid。假設result代表一個這樣的對象,我想知道是否可以做類似的事情result.newsid.topicid.topiclabel?感謝和抱歉的長描述??!
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

嘗試這個


news_id = 1234567890

news_sub_instance = NewsSub.objects.get(newsid=news_id)


topic_labels = news_sub_instance.newstopic_set.values_list('topicid__topiclabel', flat=True)



查看完整回答
反對 回復 2021-12-09
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

您可以使用prefech_related來獲取相關對象的值,請查看https://docs.djangoproject.com/en/2.1/ref/models/querysets/#prefetch-related


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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