2014-01-15 37 views
0

呼叫我試圖得到一個外鍵字段相關型號:蟒蛇 - EXEC()線工程外殼,但不能同時清晰度

for field in Model._meta.fields: 
    if "ForeignKey" in str(type(field)): 
     exec("related_model = Model." + field.name + ".get_query_set().model") 

這每行的外殼做工精細,線條。

但不是在DEF時:

def run(self): 
    for field in Model._meta.fields: 
     if "ForeignKey" in str(type(field)): 
      exec("related_model = Model." + field.name + ".get_query_set().model") 

似乎沒有創建或帳戶中的代碼進一步採取的變量「related_model」。

預先感謝您的任何建議?

回答

0

exec是解決這個問題的不好方法。相反,使用:

related_model = getattr(Model, field.name).get_query_set().model 
+0

它工作完美!非常感謝! – jcs