运算符不存在:字符变化 = 整数
operator does not exist: character varying = integer
我正在构建一个 BlogApp 并且我正在开发一个功能,但我遇到了一个错误。
operator does not exist: character varying = integer
LINE 1: ...d" = "taggit_tag"."id") WHERE "taggit_tag"."name" IN (SELECT...
我正在尝试从 Tags
中检索用户评论的所有评论,这些评论在评论的 post.
中使用
当我访问评论时,当我访问模板中的变量时,它一直显示该错误。
models.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)
views.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)
正在显示
The QuerySet value for an exact lookup must be limited to one result using slicing.
所以我使用了 __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)
我正在构建一个 BlogApp 并且我正在开发一个功能,但我遇到了一个错误。
operator does not exist: character varying = integer LINE 1: ...d" = "taggit_tag"."id") WHERE "taggit_tag"."name" IN (SELECT...
我正在尝试从 Tags
中检索用户评论的所有评论,这些评论在评论的 post.
当我访问评论时,当我访问模板中的变量时,它一直显示该错误。
models.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)
views.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)
正在显示
The QuerySet value for an exact lookup must be limited to one result using slicing.
所以我使用了 __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)