我有一个User
对象和一个UserInfo
对象,它们之间是一对一的关系。我正在添加UserInfo
对象,因此有些用户已经拥有User
对象而没有UserInfo
对象。我想检查用户对象是否已经与UserInfo对象关联,如果没有,则重定向到一个页面,以便获取一些信息。我还不熟悉Python,尝试使用if request.user.user_info:
语句,但当它不存在时会抛出异常,所以我最终使用了以下代码:
user = request.user
try:
user.user_info.university
except:
print 'redirect to info page'
这个方法可以正常工作,但我认为异常应该只用于异常情况,而不是用作if语句的替代品。有没有更好的方法来解决这个问题?
hasattr(user, 'user_info')
和'user_info' in user
。 - BlenderUserInfo
对象。您可以订阅用户创建信号,并自动为每个创建的用户初始化一个UserInfo
对象。https://docs.djangoproject.com/en/dev/topics/signals/ - dm03514