【问题标题】:Accessing foreign keys访问外键
【发布时间】:2014-08-12 08:04:15
【问题描述】:

我有以下型号:

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。我想获取每个发件人(例如朋友)的文章列表。相反,我会收到包含共享此文章的每个用户的文章列表。

【问题讨论】:

  • 你可以在Article上写一个辅助方法,或者一个模板标签。

标签: django django-models django-templates django-views


【解决方案1】:

解决方案非常简单。我只需要指定我想使用值返回的字段:

blog_feed = Article.objects.filter(shared__sharedmap__receiver=self).values('title', 'rating', 'shared__sender')

然后在模板上:

{{ article.shared__sender }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    相关资源
    最近更新 更多