У меня есть модель с методом __repr__
, которая используется для отображения в Flask-Admin. Я хочу отобразить другое значение, но не хочу менять модель. Я нашел this answer, но это все еще требует модификации модели. Как я могу указать отдельное представление для Flask-Admin?Изменить представление модели в Flask-Admin без изменения модели
class MyModel(db.Model):
data = db.Column(db.Integer)
def __repr__(self):
return '<MyModel: data=%s>' % self.data
Update
Файл: models.py
class Parent(db.Model):
__tablename__ = "parent"
id = db.Column(db.Integer, primary_key=True)
p_name = db.Column(db.Text)
children = db.relationship('Child', backref='child', lazy='dynamic')
def __repr__(self):
return '<Parent: name=%s' % self.p_name
class Child(db.Model):
__tablename__ = "child"
id = db.Column(db.Integer, primary_key=True)
c_name = db.Column(db.Text)
parent_id = db.Column(db.Integer, db.ForeignKey('parent.id'))
Файл: admin.py
from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqla import ModelView
from app import app, db
from models import Parent, Child
admin = Admin(app, 'My App')
admin.add_view(ModelView(Parent, db.session))
admin.add_view(ModelView(Child, db.session))
При попытке создать или изменить "ребенка" через администратора панели, я вижу представление из класса «Родитель». Я полагаю, что это из-за отношений, и я не знаю, как переопределить представление только для панели администратора.
Это была моя первая идея сделать это, но в моем случае это не сработает, см. Обновление. – peoff