我有一個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