2016-12-14 77 views
0

燒瓶SQLAlchemy的對應型號我有列的模型:(瓶)-SQLAlchemy得到柱

class MyModel(db.Model): 

    def my_method1(self, arg1): 
     pass 

    a = Column(String(), primary_key=True) 

現在我有接受列作爲自變量的函數從中獲取一些信息:

def get_column_info(column): 
    if column.primary_key: 
     return True 
    else: 
     return False 

請注意,這僅僅是一個例子,get_column_info比現實中的要多得多。

現在我想能夠在我的get_column_info函數中訪問原始模型。那是我想能夠從get_column_info中調用my_method1() 。

有沒有辦法從列實例中檢索原始模型?

回答

1

這樣做沒有適當的現成方法。 Column對象具有table屬性,該屬性返回模型的__table__屬性,但無法從中獲取實際模型。但是(因爲這answer建議),你可以在sqlalchemy_utils插件使用get_class_by_table方法:

from sqlalchemy_utils.functions import get_class_by_table 

def get_model(column): 
    return get_class_by_table(db.Model, column.__table__) 
+0

謝謝!這確實是我正在尋找的功能,我只是根據自己的實現:http://stackoverflow.com/questions/11668355/sqlalchemy-get-model-from-table-name-this-may-imply-appending - 一些功能,以 – RvL