Flask-Administrateur :Personnaliser le nom de la table pour l'interface d'administration
-
21-12-2019 - |
Question
J'aime changer l'affichage du nom dans le menu de niveau supérieur de Flask-Admin.Par défaut, il semble qu'il utilise le nom du modèle Calass.J'aime changer cela pour un nom plus lisible par l'homme.
J'ai vu que dans le modèle "layout.htlm", il y a une variable appelée {{ item.name }}
.Ceci est utilisé pour afficher le nom du menu.Existe-t-il un moyen de changer cela pour un autre nom ou de surcharger le nom dans la définition du modèle ?
En utilisant __tablename__
ne fonctionne pas et brisera l'administrateur interne du flacon.Existe-t-il un équivalent à __repr__
mais pour le nom de la table au lieu de la colonne.
Salutations
La solution
BaseModelView
accepte un argument nommé name
.Si vous fournissez une valeur, elle sera utilisée pour l'affichage dans le menu.
from flask.ext.admin.model import BaseModelView
admin.add_view(BaseModelView(MyModel, 'Menu Text'))
Si vous utilisez SQLAlchemy :
from flask.ext.admin.contrib.sqla import ModelView
admin.add_view(ModelView(MyModel, db.session, 'Menu Text'))
Ici, j'ai utilisé des arguments de position, mais j'aurais tout aussi bien pu le faire name='Menu Text'
plutôt.