# 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-адрес вручную в браузере, чтобы сортировать по этому столбцу - он работает так, как ожидалось!