今天遇到如下问题:
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)
问题解决。