Ich habe eine Django-App, wo Werte in einer Tabelle vom Benutzer neu angeordnet werden können und neue Werte hinzugefügt werden können und alte Werte gelöscht werden können.Django-Modellfeld für benutzerdefinierbare benutzerdefinierte Reihenfolge
Was ist der "richtige" Weg, dies zu tun?
konnte ich order = models.IntegerField()
definieren und dann die vom Benutzer definierte für jede Zeile auf den richtigen Wert, um die richtige individuelle Bestellung zu erstellen. ABER dies hat den großen Nachteil, dass bei jeder Nachbestellung jede Zeile nach der Änderung mit einer neuen order
aktualisiert werden muss. Ich könnte den Code etwas schlauer machen und die Ganzzahl definieren, die auf halbem Wege zwischen der vorherigen und der nächsten liegt - aber das bedeutet immer noch, dass gelegentlich ein Konflikt entsteht und alle Zeilen aktualisiert werden müssen.
Eine mögliche Lösung ist die Verwendung eines Floats. Dann kann die Reihenfolge einer eingefügten Zeile immer in der Mitte zwischen der vorherigen und der nächsten liegen ... Gibt es mögliche Probleme bei der Verwendung eines Gleitkommas zur Sortierung (insbesondere wenn die Anzahl der Zeilen sehr hoch wird).
Gibt es eine bessere/intelligentere/mehr integrierte Möglichkeit, so etwas zu handhaben?
Sie sollten nicht versuchen, eine Datenbank zu bestellen. Nur was dem Benutzer angezeigt wird, also entweder die abfragenden Sets bestellen oder Möglichkeiten zur Speicherung der Benutzerbestellung angeben – Sayse
Sorry, ich war nicht klar - genau das möchte ich machen. (Ordne die Abfragesätze an/speichere die Benutzereinstellungen). Was ich frage mich ist, was ist der richtige Weg, dies zu tun (wenn es viele und viele Anpassungen/Einfügungen/Löschungen/etc) – EMon
Ihre Frage ist über die Speicherung der Reihenfolge, die immer fehlerhaft sein wird. Sie müssen die Reihenfolge Präferenz speichern, zum Beispiel können Sie Antworten auf Stack-Overflow bestellen, wie aktiv sie sind oder wie viele Stimmen sie haben – Sayse