今天遇到如下问题:
medias_all = Media.objects.filter(Q(is_delete=0),
Q(media_name__contains=query) |
Q(media_id__contains=query)
).order_by("add_date")
medias = medias_all.filter(user=request.user)
出现如下错误:
int() argument must be a string or a number, not 'SimpleLazyObject'
google了一下,http://stackoverflow.com/questions/15878860/int-argument-must-be-a-string-or-a-number-not-simplelazyobject 这样说:
The likely cause is that you're setting user = request.user, where request.user is not a real User object, but a SimpleLazyObject instance. Seedjango: Purpose of django.utils.functional.SimpleLazyObject? for more details, but usingrequest.user.id should fix your issue.
由此修改为:
medias = medias_all.filter(user_id=request.user.id)
问题解决。
本文解决了在使用Django ORM进行查询时遇到的错误:int() argument must be a string or a number, not 'SimpleLazyObject'。通过将user字段替换为user_id解决了问题。
4033

被折叠的 条评论
为什么被折叠?



