# 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()
Bagaimana saya bisa menyortir Pelanggan, tergantung pada yang number_of_orders
mereka miliki?
admin_order_field
properti tidak dapat digunakan di sini, karena memerlukan bidang database untuk mengurutkan. Apakah mungkin sama sekali, karena Django mengandalkan DB yang mendasari untuk melakukan penyortiran? Membuat kolom agregat yang berisi jumlah pesanan tampaknya berlebihan di sini.
Hal yang menyenangkan: jika Anda mengubah url dengan tangan di browser untuk mengurutkan kolom ini - berfungsi seperti yang diharapkan!