Wie man ein Feld in der Flask-Admin-Ansicht einer Modellklasse nicht editierbar macht

7

Ich habe eine User -Modellklasse und password ist ein Attribut unter vielen. Ich verwende Flask web framework und Flask-Admin-Erweiterung, um die Admin-Ansicht meiner Modellklassen zu erstellen. Ich möchte bestimmte Felder in der Admin-Ansicht wie password nicht editierbar machen oder sie überhaupt nicht anzeigen. Wie mache ich das?

Ich kann die Felder nicht in der normalen Ansicht erscheinen lassen, aber wenn ich auf die Bearbeitungsschaltfläche eines Datensatzes in der Tabelle klicke, erscheinen alle Felder und sind editierbar.

    
ajay 12.02.2014, 11:48
quelle

3 Antworten

15

Sie sollten Ihre Ansicht von ModelView erweitern und die erforderlichen Felder überschreiben.

In meiner Klasse sieht das so aus:

%Vor%

Hoffe, das hilft! Weitere Informationen finden Sie in der Dokumentation:

Remo L. 23.03.2014, 20:42
quelle
6

Hier ist eine Lösung, die sich auf Remos Antwort und diese Antwort ausdehnt. Es ermöglicht verschiedene field_args zum Bearbeiten und Erstellen von Formularen.

Benutzerdefinierte Feldregelklasse

%Vor%

UserView-Klasse

%Vor%     
Phillip Martin 08.08.2016 16:57
quelle
1
___ qstnhdr ___ Wie man ein Feld in der Flask-Admin-Ansicht einer Modellklasse nicht editierbar macht ___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ tag123flask ___ Flask ist ein leichtgewichtiges Framework für die Entwicklung von Webanwendungen mit Python. ___ qstntxt ___

Ich habe eine on_form_prefill -Modellklasse und %code% ist ein Attribut unter vielen. Ich verwende Flask web framework und Flask-Admin-Erweiterung, um die Admin-Ansicht meiner Modellklassen zu erstellen. Ich möchte bestimmte Felder in der Admin-Ansicht wie %code% nicht editierbar machen oder sie überhaupt nicht anzeigen. Wie mache ich das?

Ich kann die Felder nicht in der normalen Ansicht erscheinen lassen, aber wenn ich auf die Bearbeitungsschaltfläche eines Datensatzes in der Tabelle klicke, erscheinen alle Felder und sind editierbar.

    
___ answer22596795 ___

Sie sollten Ihre Ansicht von ModelView erweitern und die erforderlichen Felder überschreiben.

In meiner Klasse sieht das so aus:

%Vor%

Hoffe, das hilft! Weitere Informationen finden Sie in der Dokumentation:

___ answer38834732 ___

Hier ist eine Lösung, die sich auf Remos Antwort und diese Antwort ausdehnt. Es ermöglicht verschiedene field_args zum Bearbeiten und Erstellen von Formularen.

Benutzerdefinierte Feldregelklasse

%Vor%

UserView-Klasse

%Vor%     
___ antwort43765924 ___

Eine weitere Möglichkeit, das Problem zu lösen, ist die Verwendung der Flask-Admin-ModelView-Methode namens %code% , um das Argument readonly-Eigenschaft festzulegen. Laut Flask-Admin Docs :

  

on_form_prefill (Formular, ID)

     

Führen Sie zusätzliche Aktionen zum Vorfüllen des Bearbeitungsformulars durch.

     

Wird von edit_view aus aufgerufen, wenn die aktuelle Aktion das Formular rendert und keine clientseitige Eingabe empfängt, nachdem die Standardvorbelegung durchgeführt wurde.

Mit anderen Worten, dies ist ein Auslöser, der ausgeführt wird, wenn nur das Bearbeitungsformular geöffnet wird, nicht das Erstellen.

Also wäre die Lösung für das oben verwendete Beispiel:

%Vor%

Die Methode wird nach allen anderen angewendeten Regeln ausgeführt, so dass keine davon unterbrochen wird, einschließlich Spalten.

    
___ tag123flaskadmin ___ Flask-Admin ist eine Erweiterung für das Flask-Framework. Es kann leicht zum Aufbau von Admin-Schnittstellen verwendet werden, mit Unterstützung von Model Scaffolding für viele bestehende Python ORMs. Verwenden Sie dieses Tag nur für Fragen zu dieser Erweiterung und nicht für allgemeine "Admin" -Funktionen in Flask. ___
tm- 03.05.2017 16:54
quelle

Tags und Links