0
acc = accounts.objects.get(twitterid=userid)

        if acc:
            accountcredit = acc.credit
            return render_to_response('twitter_auth/info.html', locals(), context_instance=RequestContext(request))

'QuerySet' 对象没有属性

我不想用 locals() 返回“acc”变量,我该怎么办?

4

2 回答 2

2

只是不要使用locals(),创建自己的上下文字典并将其传递给模板。

context = {
    'accountcredit': whatever_data_you_want
}
return render_to_response('twitter_auth/info.html', context, context_instance=RequestContext(request))

此外,使用locals()通常是一个坏主意,因为您将函数定义为变量的所有内容都传递给它,这可能会导致一些意外行为并且通常被认为是不安全的。

于 2013-09-25T05:53:11.413 回答
0
del acc

但最好使用这样的代码

from django.core.exceptions import ObjectDoesNotExist
try:
    acc = accounts.objects.get(twitterid=userid)
except ObjectDoesNotExist:
    <<when not found>>
else:
    accountcredit = acc.credit
    return render_to_response('twitter_auth/info.html', locals(), context_instance=RequestContext(request))

ps locals() 对于创建小视图很有用,使用 context={}

于 2013-09-25T06:03:28.263 回答