# 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 ai-je pu trier les Clients, selon number_of_orders
ils ont?
admin_order_field
de la propriété ne peut pas être utilisé ici, car il requiert un champ de base de données à trier. Est-il possible à tous, comme Django s'appuie sur le sous-jacent DB pour effectuer le tri? La création d'un champ d'agrégation pour contenir le nombre de commandes qui semble exagéré ici.
La chose amusante: si vous modifiez l'url à la main dans le navigateur d'effectuer un tri sur cette colonne, il fonctionne comme prévu!