Python Django类sql数据拉取
我有课:Python Django类sql数据拉取,python,django,sqlite,Python,Django,Sqlite,我有课: class Like(models.Model): user = models.ForeignKey(User, related_name='likes', on_delete=models.CASCADE) post = models.ForeignKey(Post, related_name='likes', on_delete=models.CASCADE) ratingtype = models.IntegerField(default=0) 这使我可
class Like(models.Model):
user = models.ForeignKey(User, related_name='likes', on_delete=models.CASCADE)
post = models.ForeignKey(Post, related_name='likes', on_delete=models.CASCADE)
ratingtype = models.IntegerField(default=0)
这使我可以使用此标记显示数据库表中的行总数:
{{post.likes.count}}
修改该类的最佳方法是什么,这样我就可以通过两个ratingtype(1或0)来区分计数。不要在模板中进行查询。模板用于呈现逻辑,而不是业务逻辑 您可以为正在获取的
Post
对象添加注释:
from django.db.models import Count, Q
Post.objects.annotate(
likes0=Count('likes', filter=Q(ratingtype=0)),
likes1=Count('likes', filter=Q(ratingtype=1))
)
我认为最好是有一个布尔值,默认情况下它是false,当它变为正值时进行计数
{{ post.likes0 }}
{{ post.likes1 }}