2016-12-14 4 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. То есть я хочу иметь возможность вызывать my_method1() из get_column_info.

Есть ли способ получить исходную модель из экземпляра столбца?

ответ

1

Для этого не существует надлежащего метода из коробки. Объект Column имеет атрибут table, который возвращает атрибут модели __table__, но вы не можете получить от него фактическую модель. Однако (как это answer предложил), вы можете использовать метод get_class_by_table в sqlalchemy_utils плагин:

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

 Смежные вопросы

  • Нет связанных вопросов^_^