Frage

Ich möchte die Namensanzeige im Menü der obersten Ebene von Flask-Admin ändern.Standardmäßig scheint er den Modellnamen calass zu verwenden.Ich möchte das ändern, um einen für Menschen besser lesbaren Namen zu erhalten.

Ich habe gesehen, dass es in der Vorlage „layout.htlm“ eine Variable namens gibt {{ item.name }}.Hiermit wird der Name des Menüs angezeigt.Gibt es eine Möglichkeit, dies für einen anderen Namen zu ändern oder den Namen in der Modelldefinition aufzupreisen?

Benutzen __tablename__ funktioniert nicht und wird den internen Flask-Administrator beschädigen.Gibt es ein Äquivalent zu __repr__ aber für Tabellennamen statt Spalte.

Grüße

War es hilfreich?

Lösung

BaseModelView akzeptiert ein Argument mit dem Namen name.Wenn Sie einen Wert angeben, wird dieser für die Anzeige im Menü verwendet.

from flask.ext.admin.model import BaseModelView

admin.add_view(BaseModelView(MyModel, 'Menu Text'))

Wenn Sie SQLAlchemy verwenden:

from flask.ext.admin.contrib.sqla import ModelView

admin.add_view(ModelView(MyModel, db.session, 'Menu Text'))

Hier habe ich Positionsargumente verwendet, aber ich hätte es genauso gut tun können name='Menu Text' stattdessen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top