Вы можете установить порядок по умолчанию в мета класса вашего определения модели:
class Category(models.Model):
name = models.CharField(...)
[ other fields ... ]
class Meta:
ordering = ['name']
тем, что, любой запрос на категории будет отсортирован по умолчанию на поле имени. Это может быть недостатком, если ненужное упорядочение влияет на производительность в других представлениях/местоположениях вашего приложения. Кроме того, вы можете также изменить порядок внутри вашего admins.py. Основы для этого выглядят так. Вы должны будете адаптировать этот фрагмент кода для вашего конкретного приложения:
from django import forms
from django.contrib import admin
from my_project.my_app.models import Category, Product
class ProductAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self, db_field, **kwargs):
field = super(ProductAdmin, self).formfield_for_dbfield(db_field, **kwargs)
if db_field.name == 'category':
field.queryset = Category.objects.all().order_by('name')
return field
list_display = ('...', '...', ...)
[ other admin definitions ... ]
admin.site.register(Product, ProductAdmin)
Принятая ответ на этот вопрос SO добавляет еще одно решение: Django Admin: Ordering of ForeignKey and ManyToManyField relations referencing User
Почему downvotes? Я думаю, что это законный вопрос ... –