python - 运算符不存在:字符变化 = 整数
问题描述
我正在构建一个 BlogApp,我正在开发一个功能,但我遇到了一个错误。
运算符不存在:字符变化 = 整数第 1 行:...d" = "taggit_tag"."id") WHERE "taggit_tag"."name" IN (SELECT...
我正在尝试检索用户Tags
在评论帖子中使用的所有评论。
当我访问评论时,当我访问模板中的变量时,它会一直显示该错误。
模型.py
class Post(models.Model):
post_user = models.ForeignKey(User, on_delete=models.CASCADE)
post_title = models.CharField(max_length=30)
tags = models.TaggableManager()
class Comment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post_of = models.ForeignKey(Post, on_delete=models.CASCADE)
视图.py
class page(request):
tagQuery = Tag.objects.filter(post__comment__user=request.user)
#this is showing error
subquery = Comment.objects.filter(post_of__tags__name__in=tagQuery)
context = {'subquery':subquery}
return render(request, 'page.html', context)
它正在显示
精确查找的 QuerySet 值必须限制为使用切片的一个结果。
所以我使用__in
了,但它一直显示该错误。
任何帮助将非常感激。谢谢你
解决方案
您需要根据某些字段的值进行过滤,而不是根据查询集本身进行过滤:
class page(request):
tagQuery = Tag.objects.filter(post__comment__user=request.user)
subquery = Comment.objects.filter(post_of__tags__name__in=tagQuery.values_list('name'))
context = {'subquery':subquery}
return render(request, 'page.html', context)
推荐阅读
- javascript - 正则表达式只允许有效句子,不允许所有数字、所有空格和所有特殊字符
- sql - 将 CASE WHEN 添加到 WHERE 子句
- javascript - 过滤数据时更改按钮颜色
- angular - (如何)我可以从 NgbModal 模态调用父组件函数吗?
- javascript - 改进 Wordpress 网站上的一项功能,该功能根据用户的 IP 地址更改标题中显示给用户的电话号码
- java - Thymeleaf 找不到索引模板
- c# - 如何从 .net core 2.1 中的另一个程序集加载 MEF 组件
- sql - 如何列出表的索引及其对应的列?
- wordpress - 重力形式 - 自定义进度条?
- wordpress - 无法接收 Wordpress 表单