2016-05-04 8 views
3

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を使用します。

答えて

0

あなたはモデルをサブクラス化できます。

+0

このようにするのは私の最初のアイディアでしたが、私の場合は動作しません。アップデートをご覧ください。 – peoff

0

次の答えは私の問題を解決するために私を助けています

原因は、私はちょうど代わり__unicode____repr__を交換しようとしたことにありました__unicode__メソッドを追加します。

誰もが解決しないで解決をmodels、私に教えてください私はここでそれを追加します。

関連する問題