如何处理 django 查询集中的变量字符串?
Posted
技术标签:
【中文标题】如何处理 django 查询集中的变量字符串?【英文标题】:How to deal with a variable string in django queryset? 【发布时间】:2018-06-16 02:22:29 【问题描述】:我正在尝试编写一个 django 查询集。
Review.objects.filter(user__exact=user).count()
问题是“user__exact”必须与“cuser”变量(当前登录的用户)的当前值匹配,然后返回该用户提交的评论计数。但如果我这样做,我会收到此错误。
TemplateSyntaxError at /dashboard/
Could not parse the remainder: '(user__exact=cuser).count()' from 'Review.objects.filter(user__exact=user).count()'
关于如何使它工作的任何想法?
【问题讨论】:
你为什么使用字符串?cuser
已经是一个变量了。
是的,它是一个变量。我出错的地方是,我试图通过将它包含在“”中来获取模板中查询集的值。现在我将其更改为相应的视图函数,并将“user=cuser”替换为“user=request.user”,并返回 JSON 列表中的值以及模板的其他值。它奏效了。
【参考方案1】:
如果cuser
变量是用户类的实例,在这种情况下您不需要exact
,只需使用:Review.objects.filter(user=cuser).count()
。
如果cuser
是这样的字符串(例如用户名),则使用exact
:Review.objects.filter(user__username__exact=cuser).count()
或首先使用get
方法获取用户实例:user = User.objects.get(username=cuser)
。并将此实例与过滤器一起使用:Review.objects.filter(user=user).count()
【讨论】:
谢谢!它是一个变量。我出错的地方是,我试图通过将它包含在“”中来获取模板中查询集的值。现在我将其更改为相应的视图函数,并将“user=cuser”替换为“user=request.user”,并返回 JSON 列表中的值以及模板的其他值。它奏效了。以上是关于如何处理 django 查询集中的变量字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 VBA 中 HTML 变量的 MailChimp API 响应?
ASP.NET Core Web API - 如何处理 URL 查询字符串中的“null”与“undefined”?