# 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()
¿Cómo puedo clasificar a los Clientes, dependiendo de number_of_orders
que tengan?
admin_order_field
La propiedad no se puede usar aquí, ya que requiere un campo de base de datos para ordenar. ¿Es posible en absoluto, ya que Django se basa en la base de datos subyacente para realizar la clasificación? Crear un campo agregado para contener la cantidad de pedidos parece exagerado aquí.
Lo divertido: si cambia la URL a mano en el navegador para ordenar en esta columna, ¡funciona como se esperaba!