# 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()
Làm thế nào tôi có thể sắp xếp Khách hàng, tùy thuộc vào number_of_ordershọ có?
admin_order_fieldkhông thể sử dụng thuộc tính ở đây, vì nó yêu cầu một trường cơ sở dữ liệu để sắp xếp. Có thể nào không, vì Django dựa vào DB bên dưới để thực hiện sắp xếp? Việc tạo một trường tổng hợp để chứa số lượng đơn đặt hàng có vẻ là một việc làm quá mức cần thiết ở đây.
Điều thú vị: nếu bạn thay đổi url bằng tay trong trình duyệt để sắp xếp trên cột này - nó hoạt động như mong đợi!