我有一个User
对象和一个UserInfo
对象,它们具有一对一的关系。我只是添加UserInfo
对象,因此某些用户已经有User
对象,但不包含UserInfo
对象。我想检查用户对象是否有一个UserInfo对象与它关联,如果没有重定向到一个页面,我可以得到一些信息。我还是新的蟒蛇,并尝试做一个if request.user.user_info:
它抛出一个异常,当它不存在,所以我落得这样做的:Python Django检查属性是否存在或已设置
user = request.user
try:
user.user_info.university
except:
print 'redirect to info page'
,工作正常,但我觉得异常应该是例外和不用于if语句替代。有一个更好的方法吗?
尝试'hasattr(用户, 'USER_INFO')'和' 'USER_INFO' 在user'。 – Blender 2013-04-20 20:31:38
另一件需要考虑的事情是,如果每个用户都应该有一个'UserInfo'对象,您可以订阅用户创建信号并为每个创建的用户自动初始化一个'UserInfo'对象。 https://docs.djangoproject.com/zh/dev/topics/signals/ – dm03514 2013-04-20 20:34:59
http://stackoverflow.com/questions/610883/how-to-know-if-an-object-has-an-attribute-in -python – phazei 2013-09-26 02:49:03