2016-06-06 13 views

Antwort

-2

Wenn Ihre Datenbank SQLite, versuchen:

results = model_name.objects.extra(select={'model_field':'CAST(model_field AS INTEGER)'}).order_by('model_field') 
return render(request, template_name, {"results":results}) 
+0

Die Frage ist, über die gerenderte Tabelle für django-tables2, nicht regelmäßig querysets Sortierung. – Jieter

0

Der Table Konstruktor hat einen order_by -Argument. Sie können damit die Erstbestellung festlegen.

import django_tables2 as tables 

class Table(tables.Table): 
    first_name = tables.Column() 
    last_name = tables.Column() 


def view(request): 
    table = Table(data, order_by='last_name') 

    return render(request, 'template.html', {'table': table}) 

Diese Option ist auch in Table ‚s verfügbar class Meta:

class Table(tables.Table): 
    first_name = tables.Column() 
    last_name = tables.Column() 

    class Meta: 
     order_by = '-last_name' # use dash for descending order 
+0

Das sortiert meine Tabelle, aber andere Sortierfelder funktionieren nicht. Nur der Nachname ist sortiert –

+0

Sie können auch ein Tupel von Spalten übergeben, nach denen sortiert werden soll. Aber das ist nicht die Frage, die du gestellt hast. – Jieter

+0

Ich fragte nach Arbeitstabelle sortieren. Wenn ich order_by gebe, wird die Tabelle als ordered_by lastname angezeigt. Und standardmäßig ist das Sortiersymbol (Abwärtspfeil) für die Nachname-Spalte ausgewählt. Wenn wir in diesem Fall eine andere Spalte auswählen, funktioniert die Sortierung nicht. Wenn wir order_by entfernen, funktioniert die Sortierung in anderen Spalten ebenfalls einwandfrei. –