gpt4 book ai didi

python - 类型 'CombinedExpression' 的对象不可 JSON 序列化

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:00 25 4
gpt4 key购买 nike

我在我的应用程序中为评论设置了喜欢/不喜欢功能,但是当用户第一次单击喜欢或不喜欢时,它会给我错误,我在标题中指出了这一点。但这只是在第一次发生,如果用户再次点击“喜欢”或“不喜欢”,它就完全可以正常工作。

“CombinedExpression”到底是什么?

我的观点.py:

@login_required(login_url='/accounts/login/')
def like(request, comment_id):
comment = get_object_or_404(Comments, pk=comment_id)
if request.POST:
# handling like or dislike
if request.is_ajax():
return JsonResponse({'cmplus':comment.cmpvote, 'cmminus':comment.cmmvote})

return HttpResponseRedirect(my reverse return)

郑重声明,我必须说 cmpvote 和 cmmvote 是评论的喜欢和不喜欢的数量,并且是默认值为 0 的整数。

最佳答案

if request.POST 中发生了什么部分?有没有什么事情只在第一次点击时发生?

CombinedExpression是 Django F 的结果功能。所以如果你做类似的事情

comment.cmpvote = F('cmpvote') + 1

comment.cmpvote的值将是

<CombinedExpression: F(cmpvote) + Value(1)>

而不是实际的票数。

要解决此问题,请调用 comment.refresh_from_db()在序列化对象之前。

关于python - 类型 'CombinedExpression' 的对象不可 JSON 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45646729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com