peo*_*off 5 python flask flask-admin
我有一个带有__repr__方法的模型,用于在Flask-Admin中显示.我想显示不同的值,但不想更改模型.我找到了这个答案,但仍然需要修改模型.如何为Flask-Admin指定单独的表示?
class MyModel(db.Model):
data = db.Column(db.Integer)
def __repr__(self):
return '<MyModel: data=%s>' % self.data
Run Code Online (Sandbox Code Playgroud)
更新
文件: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'))
Run Code Online (Sandbox Code Playgroud)
文件: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))
Run Code Online (Sandbox Code Playgroud)
当我尝试通过管理面板创建或编辑"child"时,我会看到"Parent"类的表示.我想这是因为关系,我不知道如何重新定义管理面板的表示.
您可以对模型进行子类化:
class MyNewModel(MyModel):
def __repr__(self):
return '<MyModel: DATA IS %d!>' % self.data
Run Code Online (Sandbox Code Playgroud)
然后使用MyNewModel代替MyModel.
| 归档时间: |
|
| 查看次数: |
709 次 |
| 最近记录: |