我收到以下错误:
'AnonymousUser'对象没有属性'get_profile'
我添加了以下中间件后,尝试登录我的网站而未登录:
class TimezoneMiddleware(object):
def process_request(self, request):
try:
driver = request.user.get_profile()
timezone.activate(driver.timezone)
except ObjectDoesNotExist:
timezone.activate('UTC')
在回溯中,错误发生在try语句的第一行。
提前感谢您的帮助!
答案 0 :(得分:3)
对于未登录的用户,request.user
是AnonymousUser
个实例,不包含get_profile
。我们可以检查request.user
是否已登录并通过if request.user.is_authenticated():
def process_request(self, request):
if request.user.is_authenticated():
try:
driver = request.user.get_profile()
timezone.activate(driver.timezone)
except ObjectDoesNotExist:
timezone.activate('UTC')
答案 1 :(得分:0)
request.user.get_profile()可能会引发一个AttributeError,你应该尝试以下
class TimezoneMiddleware(object):
def process_request(self, request):
try:
driver = request.user.get_profile()
timezone.activate(driver.timezone)
except ObjectDoesNotExist, AttributeError:
timezone.activate('UTC')