Hi
Ich habe eine Tabelle in der Form ID, Name. Geordnet wird das in Flask-Admin natürlich aufgrund der ID.
Frage: Wenn ich ein neues Feld hinzufüge und einen Knopf zum Ordnen der Tabellenfelder hinzufügen möchte. Was wäre da das Vorgehen? Und muss da ein zusätzliches Integer-Feld her?
Ordnen einer Tabelle in Flask-Admin
- noisefloor
- User
- Beiträge: 4150
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ich kenne Flask-Admin selber nicht, aber in einem der Online-Beispiele kann man die Spalten durch einen Klick auf den Spaltenkopf nach dieser Spalte sortieren.
Gruß, noisefloor
ich kenne Flask-Admin selber nicht, aber in einem der Online-Beispiele kann man die Spalten durch einen Klick auf den Spaltenkopf nach dieser Spalte sortieren.
Gruß, noisefloor
- noisefloor
- User
- Beiträge: 4150
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ok... aber dann verstehe ich zumindest dein Problem nicht. Also was genau das Problem eigentlich ist.
Gruß, noisefloor
ok... aber dann verstehe ich zumindest dein Problem nicht. Also was genau das Problem eigentlich ist.
Gruß, noisefloor
Also ich habe es so verstanden das es eine Tabelle gibt wo eine zusätzliche Spalte rein soll in der man im Admin-Bereich Werte reinschreibt die dann die Sortierreihenfolge angeben in der das für den normalen Benutzer dann angezeigt wird. Beispielsweise in einer Dropdown-Box. Also zum Beispiel OK, WARNING, CRITICAL, KABOOM in *dieser* Reihenfolge und nicht alphabetisch, zufällig, oder nach der Datensatz-ID.
Inwieweit löst den column_sortable_list und column_default_sort das Problem nicht?
Das Hauptproblem das ich sehe ist das es ohne spezielle Unterstützung ziemlich unhandlich ist weil man für die Sortierwerte vorgaben von Hand machen muss und wie früher bei BASIC-Zeilennummern immer schön Platz zwischen den Werten lassen muss um später noch etwas dazwischen einfügen zu können. Und wenn der mal zu gleich gewählt wurde muss man umnummerieren. Was von Hand auch sehr unschön ist.
Ich schätze mal, ein Bild sagt mehr als tausend Worte:

Also, ich möchte nun die Reihenfolge der Reihen nach unten und nach oben verschieben können (natürlich mit Auswirkung aufs Frontend). Eigentlich eine Grundanforderung für ein Admin sollte man meinen (insofern bin ich etwas überrascht, dass das fehlt). Oft wird das mit zwei kleinen Pfeil Icons angedeutet. Dazu wäre es auch noch schön einen Button zu haben um an beliebiger Stelle einen Datensatz einzufügen. Verständlich? Die erste Spalte ist übrigens via Fremdschlüssel automatisch aufgeführt. Geordnet wird am Admin aufgrund der Zweiten (das angezeigte Model im Admin bezieht sich auf die Unterklassen: z.B. Boot Hallenplatz).

Also, ich möchte nun die Reihenfolge der Reihen nach unten und nach oben verschieben können (natürlich mit Auswirkung aufs Frontend). Eigentlich eine Grundanforderung für ein Admin sollte man meinen (insofern bin ich etwas überrascht, dass das fehlt). Oft wird das mit zwei kleinen Pfeil Icons angedeutet. Dazu wäre es auch noch schön einen Button zu haben um an beliebiger Stelle einen Datensatz einzufügen. Verständlich? Die erste Spalte ist übrigens via Fremdschlüssel automatisch aufgeführt. Geordnet wird am Admin aufgrund der Zweiten (das angezeigte Model im Admin bezieht sich auf die Unterklassen: z.B. Boot Hallenplatz).
@meego: Das mit der Grundanforderung ist so eine Sache: Das ist etwas was nicht trivial ist weil Datensätze in einer Datenbank nicht einfach so eine Reihenfolge haben die man ändern könnte, also kann ein Admin-Frontend das auch nicht einfach so als Funktionalität anbieten ohne zusätzliche Daten in der Datenbank und zusätzliche Logik im Admin-Frondend. *Wie* man die Reihenfolge festlegbar macht kommt mit zusätzlichen Fragen daher: zusätzliche Spalte, zusätzliche Tabelle, ganzzahliger Datentyp oder Dezimalbruch, wie werden die Werte gewählt, was soll/muss passieren wenn es keinen ”Platz” mehr zwischen zwei ”Ordnungswerten” gibt, der Benutzer aber etwas dazwischen einfügen möchte, und so weiter.
Es gibt eben auch viele die als Grundanforderung an ein Admin-Frontend haben, dass das eine vorhandene Datenbank beziehungsweise einen vorhandenen Entwurf verwenden kann ohne darin Änderungen oder Ergänzungen vorzunehmen.
Es gibt eben auch viele die als Grundanforderung an ein Admin-Frontend haben, dass das eine vorhandene Datenbank beziehungsweise einen vorhandenen Entwurf verwenden kann ohne darin Änderungen oder Ergänzungen vorzunehmen.
@meego: Was meinst Du mit austauschen? Und wie sollte das verschieben denn konkret gehen? Was soll da konkret passieren wenn Du einen Eintrag mitten drin nimmst und den eine Position nach oben verschiebst? Welche Daten in welcher Tabelle sollen daraufhin nach welchem Algorithmus verändert werden? Mach mal ein konkretes Beispiel mit Werten für vor dem Verschieben und nach dem Verschieben.
@Blackjack: Wenn Boot Hallenplatz ID 1 hat und Boot Stegplatz ID 2 hätte, wenn man Boot Stegplatz nach oben verschiebt, Boot Stegplatz ID 1 und Boot Hallenplatz ID 2. Das Beispiel bezieht sich auf den Screenshot meiner Unterklassentabelle.
@meego: Welche ID? Du willst den Primärschlüsselwert ändern? Dann ändert sich doch auch alles was sich auf diesen Primärschlüssel bezieht, so ein Primärschlüssel gehört eindeutig und unveränderbar zu einem Datensatz, denn über diesen Primärschlüssel stellt man doch die Verbindungen aus anderen Tabellen zu den Datensätzen her. Du bräuchtest schon eine zusätzliche Spalte wo Werte drin stehen welche die Reihenfolge festlegen. Oder eine zusätzliche Tabelle.
@blackjack: Bei mir steht in den Sätzen nur der Fremdschlüssel der Gattungen. Okay, es ist vielleicht noch ein simples Modell. Wie das mit der zusätzlichen Tabelle geht verstehe ich nicht.
Ich nehme dann mal an, Flask_Admin bietet keine Unterstützung für so eine Sortierungsspalte (d.h. die Daten werden erstmal gleich angezeigt)?
Ich nehme dann mal an, Flask_Admin bietet keine Unterstützung für so eine Sortierungsspalte (d.h. die Daten werden erstmal gleich angezeigt)?
@meego: Was sind denn Gattungen? Du musst bei der Beschreibung davon ausgehen das wir nichts weiter wissen als das was Du hier sagst.
Statt einer zusätzlichen Spalte für die Gewichtung könnte man auch eine zusätzliche Tabelle anlegen welche die Gewichtung enthält.
Statt einer zusätzlichen Spalte für die Gewichtung könnte man auch eine zusätzliche Tabelle anlegen welche die Gewichtung enthält.
@meego: Wenn Du in Deiner Tabelle keine Spalte hast, die die Reihenfolge irgendwie repräsentiert, wie soll dann Flask_Admin eine unterstützen? Eine zusätzliche Tabelle würde man z.B. verwenden, wenn die ursprüngliche Tabelle aus welchen Gründen auch immer nicht verändert werden kann, man aber trotzdem die Reihenfolge der Elemente speichern will.
@Sirius: Gemeint war, wenn ich eine solche Ordnungsspalte integriere. Ich denke es ist kein Problem, die ursprüngliche Tabelle in meinem Fall zu verändern.
@Blackjack: Die Gattungen in meinem Bild sind die Parkplätze (separate Tabelle), die Arten oder die Subklasse z.B. Aussenparkplatz Moto (die im Beispiel angezeigte eigene Tabelle).
@Blackjack: Die Gattungen in meinem Bild sind die Parkplätze (separate Tabelle), die Arten oder die Subklasse z.B. Aussenparkplatz Moto (die im Beispiel angezeigte eigene Tabelle).