【发布时间】:2012-05-17 10:01:54
【问题描述】:
我遇到了一个问题,我将request.user 分配给一个名为prior_user 的变量,然后基本上验证了用户,然后检查是否request.user != prior_user。我希望它们不一样,prior_user 应该包含 `AnonymousUser.令我惊讶的是,它们是一样的。
示例代码:
prior_user = request.user # request object, obtained froma view
authenticate_user(request) # some function that authenticates
print prior_user.username != request.user.username # returns False i.e.they are the same!
然后我发现prior_user实际上包含一个django.utils.functional.SimpleLazyObject的实例,所以我认为它是某种惰性查找类型的东西,即在实际使用之前不会查找prior_user的值。查看源代码,我无法确认。
任何有 django 经验的人都可以告诉我发生了什么以及为什么需要它?
这让我有点动摇,因为通常的赋值语句不能按我期望的方式工作,而 Django 中还有什么东西是这样的?我也没有在docs 中看到这一点。
那么任何对 django 有超人了解的人都可以提供一些清晰的信息吗?
【问题讨论】:
标签: django django-views