2

我正在尝试使用 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'
4

2 回答 2

4

由于 request.user 是一个SimpleLazyObject直到它被访问。尝试将您的查询更改为以下内容:

user_drafts = Draft.objects.filter(user = user.pk)
于 2012-08-09T03:00:10.253 回答
3

问题在于:

user = request.user

阅读这篇文章以获取更多详细信息 request.user 返回一个 SimpleLazyObject,我如何“唤醒”它?

于 2012-08-09T02:36:06.730 回答