# 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_orders
họ có?
admin_order_field
khô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!