1
嗨,我想知道是否有人可以帮助我解决这个问题,因为我是django的新手。django ORM:查询三个模型
我有以下型号
class Article(models.Model):
articleid = models.CharField(primary_key=True,max_length=20)
author = models.CharField(max_length=300)
title = models.CharField(max_length=500)
# Each article can only have one ArticleTone
class ArticleTone(models.Model):
label = (
('sad', 'Sad'),
('happy', 'Happy'),)
articleid = models.ForeignKey(Article, on_delete=models.CASCADE, db_column="article")
tone = CharField(max_length=10,choices=label,blank=False, null=False)
class Meta:
ordering = ('tone',)
# Each article will have 5 keywords
class ArticleKeywords(models.Model):
articleid = models.ForeignKey(Article, on_delete=models.CASCADE, db_column="article")
keywords = models.CharField(max_length=100,blank=False, null=False)
我能够获得使用此查询的前20名的实体。
ArticleKeywords.objects.values('articleid').annotate(result=Count('keywords')).order_by('-result')[:20]
,并能够得到将是悲伤或快乐的方法是使用下面
ArticleTone.objects.filter(name= 'sad');
但我怎么把碎片拼凑起来,让所有包含前20悲或喜的文章篇文章。任何帮助表示赞赏
我想这一点,但实际上并没有给我的前20悲或喜的文章(基于他们的文章中出现。无论哪种方式,感谢您的帮助。去捅了一下周围更得到它 – tom1123