2010-12-31 14 views

Antwort

73
class SeminarInline(admin.StackedInline): 
    model = Seminar 
    extra = 0 
    ordering = ('-date',) 

für mich gearbeitet (oben von meinem Modell angepasst) Es sortiert in absteigender chronologischer Reihenfolge

+1

Sowohl diese als auch @Marcus Whybrows Antwort lösen das Problem. Die Frage ist, ob jemand die Standard-Sortierung auf die Admin-Ansicht oder auf andere Ansichten beschränken möchte. –

12

Sie Meta Optionen eines hinzufügen Django-Modell, das bestimmen kann, wie es sich verhält. Es gibt eine ordering Option, die definiert, nach welchen Modellattributdatensätzen sortiert werden soll.

Sie können die Dokumentation für die Meta-Bestellmöglichkeit finden here in the Django docs:

+0

Ist das nicht die Antwort, die Sie suchen? –

+0

Ich kann sehen, wgar Lylo sagt .. Ich habe das gleiche Problem .. [a, b, c, d] .. Ich möchte in der Lage sein, den Administrator die Daten neu zu ordnen, ohne auf ein Feld angewiesen .. [d, c, a, b] zum Beispiel – Lee

+1

Perfekte Lösung! Beispiel [hier] (https://docs.djangoproject.com/en/dev/topics/db/models/#meta-options) – Roger

7

Wenn Sie einen Auftrag innerhalb eines InlineAdmin django definieren möchten Sie nicht bieten eine generische Lösung, dies zu tun! Es gibt some snippets out there, mit denen Sie diese Funktionalität zum Admin hinzufügen können, auch die grappelli skin bietet Ihnen eine solche Funktion!

4

Es besteht auch die Möglichkeit get_ordering(self, request) der ModelAdmin außer Kraft zu setzen, die für Groß- und Kleinschreibung Anordnung erlaubt:

from django.db.models.functions import Lower 

class MyModelAdmin(ModelAdmin): 
    list_display = ('name',) 
    search_fields = ['name'] 

    def get_ordering(self, request): 
     return [Lower('name')] # sort case insensitive 
+0

Ich denke, dass 'return [Lower ('name')]' sollte 'return [self.name.lower()]' sein. – LostMyGlasses

+0

@LostMyGlasses Nein, Sie möchten den Feldnamen nicht absenken, sondern die Werte, die zum Sortieren verwendet werden. – Risadinha

+0

In Ordnung, der Import, den Sie hinzugefügt haben, bietet jetzt neue Informationen. – LostMyGlasses