我使用jinja2作为django app的模板引擎。我想在模板中进行查询。我试过这样做:
{% for f in fs %}
{% Following.objects.filter(follows=f).count() %}
{% endfor %}
我在变量中传递'fs',同时渲染模板列表。
但是,它错了。由于我的模型的定义方式,我无法进行'query_set'调用。这是一个片段:
class Following(models.Model):
user = models.ForeignKey(User)
follows = models.ForeignKey(F)
class F(models.Model):
name = models.CharField(max_length=50)
那么,有可能这样做吗?
答案 0 :(得分:1)
如果您使用的是jinja2而不是普通的Django模板语言,那么您应该使用的是:您没有说明为什么没有。
但是,没有必要定义一个单独的方法。您可以使用自动反向关系访问器:
{{ f.following_set.count() }}
答案 1 :(得分:0)
您无法调用从django模板获取参数的方法。要解决此问题,您可以在F
模型中定义方法以获得所需的计数。
例如:
class F(models.Model):
name = models.CharField(max_length=50)
def get_follow_count(self):
Following.objects.filter(follows=self).count()
然后在模板中你可以做
{% for f in fs %}
{{ f.get_follow_count }}
{% endfor %}