# admin.py
class CustomerAdmin(admin.ModelAdmin):
list_display = ('foo', 'number_of_orders')
# models.py
class Order(models.Model):
bar = models.CharField[...]
customer = models.ForeignKey(Customer)
class Customer(models.Model):
foo = models.CharField[...]
def number_of_orders(self):
return u'%s' % Order.objects.filter(customer=self).count()
Как я могу отсортировать клиентов в зависимости от number_of_ordersих наличия?
admin_order_fieldСвойство здесь использовать нельзя, так как для сортировки требуется поле базы данных. Возможно ли это вообще, поскольку Django полагается на базовую БД для выполнения сортировки? Создание агрегированного поля, содержащего количество заказов, здесь кажется излишним.
Самое интересное: если вы вручную измените URL-адрес в браузере для сортировки по этому столбцу - все будет работать, как ожидалось!