В следующем примере базы данных хранятся сообщения о новостях и соответствующая информация для каждой новости.Я заинтересован в поиске тем, связанных с каждой новостью.Проблема в том, что они хранятся в разных таблицах со сложными отношениями.
Каждой новости присваивается 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
1016 * с моделью 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')
В таблице NewsTopic
db каждый 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
В таблице NewsLabel
db каждый toicid
соответствует уникальному topiclabel
.
Моя цель - получить topiclabel
(s), связанные с каждым NewsFeed
объектом, запросив newsid
.Предположим, result
представляет один из таких объектов, мне интересно, возможно ли сделать что-то вроде result.newsid.topicid.topiclabel
?
Спасибо и простите за длинные описания !!