Nie ma BRAK ZAMÓWIENIA DOMYŚLNEGO , punkt, którego nie można wystarczająco podkreślić, ponieważ wszyscy robią to źle.
Tabela w bazie danych nie jest zwykłą tabelą html, to nieuporządkowany zestaw krotek. Często zaskakuje programistów przyzwyczajonych tylko do MySQL, ponieważ w tej konkretnej bazie danych kolejność wierszy jest często przewidywalna, ponieważ nie wykorzystuje ona zaawansowanych technik optymalizacji. Na przykład nie można wiedzieć, które wiersze zostaną zwrócone, ani ich kolejności w żadnym z następujących zapytań:
select * from table limit 10
select * from table limit 10 offset 10
select * from table order by x limit 10
W ostatnim zapytaniu kolejność jest przewidywalna tylko wtedy, gdy wszystkie wartości w kolumnie x są unikalne. RDBMS może zwracać dowolne wiersze w dowolnej kolejności, o ile spełnia warunki instrukcji select.
Chociaż możesz dodać domyślną kolejność na poziomie Django, co powoduje dodanie klauzuli order by do każdego nieuporządkowanego zapytania:
class Table(models.Model):
...
class Meta:
ordering = ['name']
Zwróć uwagę, że może to utrudniać wydajność, jeśli z jakiegoś powodu nie potrzebujesz uporządkowanych wierszy.