[英]Django, How to access dynamically, related models of object
我有模型實例User。
用戶與另外兩個模型model1
和model2
有兩個1對1關系。 我不想做user.model1
相反,我想做這樣的事情:
model_name = 'model1'
user.__dict__[model_name]
我發現我可以通過以下方式做到這一點:
user.__dict__['_wrapped'].__dict__['_' + model_name + '_cache]
但是我覺得很丑,還有另一種方法嗎?
您可以使用getattr(..)
[Python-doc] :
getattr(user, 'model1')
getattr(..)
是內置的Python函數,而getattr(x, 'y')
對應於xy
(請注意,對於getattr(..)
,第二個參數是字符串)。
如果對象(此處為user
)具有屬性model1
,它將引發AttributeError
。 getattr(..)
也可以采用三個參數:第三個參數用作默認值,因此如果屬性non_existing_attribute
不存在,則getattr(user, 'non_existing_attribute', None)
將返回None
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.