# 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()
我怎么才能根据客户的number_of_orders
人对他们进行分类呢?
这里不能使用admin_order_field
属性,因为它需要数据库字段才能排序.有没有可能,因为Django依赖底层DB来执行排序?在这里,创建一个包含订单数量的聚合字段似乎有点矫枉过正.
有趣的是:如果您在浏览器中手动更改url以按此列排序-它会按预期工作!