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