Flask-Adminでの表示に使用される__repr__
メソッドを持つモデルがあります。私は別の値を表示したいが、モデルを変更したくない。 this answerが見つかりましたが、それでもモデルを変更する必要があります。どのようにFlask-Adminのために別の表現を指定することができますか?モデルを変更せずにFlask-Adminでモデル表現を変更する
class MyModel(db.Model):
data = db.Column(db.Integer)
def __repr__(self):
return '<MyModel: data=%s>' % self.data
更新
ファイル: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))
私は管理者によって編集 "子" を作成したりしてみてくださいパネル、私は "親"クラスから表現を参照してください。私はそれが関係のためだと思うし、私は管理パネルの表現をどのように再定義するのか分からない。
class MyNewModel(MyModel):
def __repr__(self):
return '<MyModel: DATA IS %d!>' % self.data
をしてからMyModel
の代わりにMyNewModel
を使用します。
このようにするのは私の最初のアイディアでしたが、私の場合は動作しません。アップデートをご覧ください。 – peoff