# 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()
Comment pourrais-je trier les clients, selon number_of_orders
qu'ils ont?
admin_order_field
La propriété ne peut pas être utilisée ici, car elle nécessite un champ de base de données pour effectuer le tri. Est-ce possible du tout, car Django s'appuie sur la base de données sous-jacente pour effectuer le tri? Créer un champ agrégé pour contenir le nombre de commandes semble ici exagéré.
La chose amusante: si vous changez l'url à la main dans le navigateur pour trier cette colonne - cela fonctionne comme prévu!