以下示例數據庫存儲新聞帖子和每條新聞的相關信息。我有興趣檢索與每個新聞相關的主題。問題是,它們存儲在具有復雜關系的不同表中。每個新聞都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)

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
您可以使用prefech_related
來獲取相關對象的值,請查看https://docs.djangoproject.com/en/2.1/ref/models/querysets/#prefetch-related
添加回答
舉報
0/150
提交
取消