Django:用户过滤草稿会导致错误

时间:2012-08-09 01:58:34

标签: python django

我正在尝试使用request.user变量过滤数据库中的一组草稿对象。他们是出于某种原因我得到下面列出的错误。我该如何修复这个错误?

功能:

def posting_draft(request):
    user = request.user
    user_drafts = Draft.objects.filter(user = user)
    drafts = dict()
    for d in user_drafts:
        drafts[d.title] = d.id
    return render_to_response('posting_draft.html', {'STATIC_URL':STATIC_URL, 'draft_l' : drafts})

错误:

int() argument must be a string or a number, not 'SimpleLazyObject'

2 个答案:

答案 0 :(得分:4)

由于request.user是SimpleLazyObject,因此在访问之前。尝试将您的查询更改为以下内容:

user_drafts = Draft.objects.filter(user = user.pk)

答案 1 :(得分:3)

问题在于:

user = request.user

阅读这篇文章了解更多详情 request.user returns a SimpleLazyObject, how do I "wake" it?