# 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()
Wie kann ich Kunden sortieren, je nachdem number_of_orders
, welche?
admin_order_field
Die Eigenschaft kann hier nicht verwendet werden, da zum Sortieren ein Datenbankfeld erforderlich ist. Ist es überhaupt möglich, dass Django sich beim Sortieren auf die zugrunde liegende Datenbank verlässt? Das Erstellen eines Aggregatfelds mit der Anzahl der Bestellungen scheint hier ein Overkill zu sein.
Das Schöne: Wenn Sie die URL im Browser von Hand ändern, um nach dieser Spalte zu sortieren, funktioniert sie wie erwartet!