将组件安装到运行django 2.1的项目中后,出现此错误:
int() argument must be a string, a bytes-like object or a number, not 'SimpleLazyObject'
视图
class TrackLikeToggle(RedirectView):
def get_redirect_url(self, *args, **kwargs):
id = self.kwargs.get("id")
obj = get_object_or_404(Post, id=id)
url_ = obj.get_absolute_url()
user = self.request.user
if user in obj.likes.all():
obj.likes.remove(user)
else:
messages.add_message(self.request, messages.INFO, '1')
obj.likes.add(user)
return url_
完整回溯:https://pastebin.com/FmkFKDW3
非常感谢您
答案 0 :(得分:0)
我认为这是因为
当obj.likes.add(user)
行代码被点击时,该用户未通过身份验证,这将返回Django的默认请求用户对象,该对象是SimpleLazyObject
的实例。您可以将视图设置为login_required
,也可以尝试检查用户是否已通过身份验证。
有关此的更多详细信息,您可以关注此Link