【发布时间】:2021-11-14 20:34:34
【问题描述】:
我正在构建一个 BlogApp,当一个特定的 tag 被使用 10 次时,我正在尝试 create a notification。
所以我在for loop 中使用if statement 所以如果any tag used 10 times then create notification 但是当我尝试使用count 时它正在显示
'Tag' 对象没有属性 'count'
models.py
class Post(models.Model):
post_user = models.ForeignKey(User, on_delete=models.CASCADE)
psot_title = models.CharField(max_length=30)
class Comment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post_of = models.ForeignKey(Post, on_delete=models.CASCADE)
views.py
def page(request):
subquery = Tag.objects.filter(post__post_user=request.user).annotate(
num_name=Count('name')
for que in subquery:
if que.count() > 10:
Notification.objects.create(user=request.user)
context = {'subquery':subquery}
return render(request, 'page.html', context}
我尝试了什么:-
我也试过len 喜欢:-
for que in subquery:
if len(que) > 10:
Notification.objects.create(user=request.user)
但它显示了
'Tag' 类型的对象没有 len()
我已经通过删除count() 和len() 尝试了很多次,但它显示了
'int' 对象没有属性 'name'
如果我在查询中使用count(),那么它将计入所有标签但我正在尝试检查每个标签。
任何帮助将不胜感激。谢谢你
【问题讨论】:
标签: python django django-models django-queryset