擅长:python、mysql、java
<p>您的实现没有意义。我认为您正在尝试获取所有<code>Comments</code>对象的计数,但这里您正在尝试计数subject,可能是字符串或列表。在他们身上,count的工作原理如下:</p>
<pre><code>IN >> "aaaaa".count('a')
OUT >> 5
IN >> [1,2,3,4].count(1)
OUT >> 1
</code></pre>
<p>现在,为了解决您的问题,我们需要了解您希望在这里实现什么。如果您想获得某个帖子的评论数,可以这样尝试:</p>
<p>如果您有这样的模型:</p>
<pre><code>class Comments(models.Model):
post = models.ForeignKey(Post)
</code></pre>
<p>然后您可以采用这种方法:</p>
<pre><code>def get_comment_count(self, obj):
return obj.post.comments_set.count()
</code></pre>
<p>这是Django queryset中的<a href="https://docs.djangoproject.com/en/3.0/ref/models/querysets/#django.db.models.query.QuerySet.count" rel="nofollow noreferrer">^{<cd2>}</a>函数。和<code>obj.post.comments_set</code>将返回一个queryset(用于具有反向关系)。如果您定义了<code>related_name="post_comments"</code>(<a href="https://docs.djangoproject.com/en/3.0/ref/models/fields/#django.db.models.ForeignKey.related_name" rel="nofollow noreferrer">docs</a>),那么它将变成<code>obj.post.post_comments.count()</code></p>