我有以下型号:
class Article(models.Model):
title = models.CharField(max_length=200, unique=False, null=False)
rating = models.IntegerField(default=0, null=False, unique=False)
class Shared(models.Model):
sender = models.ForeignKey(User)
article = models.ForeignKey(Article)
class SharedMap(models.Model):
item = models.ForeignKey(Shared)
receiver = models.ForeignKey(User)
现在我执行以下查询:
def get_shared_feed(self):
return Article.objects.filter(shared__sharedmap__receiver=self)
我实际上按预期获得了文章列表。但是:
{{ article.shared_set.count }}
如果以前分享这些文章,我会给我超过1分。我想获得每个文章的列表,其中包含一个发件人(例如朋友)。相反,我收到的文章列表包含分享本文的每个用户的集合。
答案 0 :(得分:0)
解决方案非常简单。我只需要使用值指定要返回的字段:
blog_feed = Article.objects.filter(shared__sharedmap__receiver=self).values('title', 'rating', 'shared__sender')
然后在模板上:
{{ article.shared__sender }}