# 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()
Run Code Online (Sandbox Code Playgroud)
我如何根据客户的不同对客户进行排序number_of_orders?
admin_order_fieldproperty不能在这里使用,因为它需要一个数据库字段来进行排序.是否有可能,因为Django依赖底层数据库来执行排序?创建一个包含订单数量的聚合字段在这里看起来有点过分.
有趣的是:如果您在浏览器中手动更改URL以对此列进行排序 - 它按预期工作!
序幕:
这是SO中经常出现的问题:
也可以在这里应用:
我已经在SO文档中编写了一个示例,但由于文档将于2017年8月8日关闭,我将遵循这个广泛上升和讨论的元答案的建议,并将我的示例转换为自我回答的帖子.
当然,我也很乐意看到任何不同的方法!
题:
假设以下型号:
class MyModel(models.Model):
number_1 = models.IntegerField()
number_2 = models.IntegerField()
date_1 = models.DateTimeField()
date_2 = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
如何在此模型的字段之间执行算术运算?
例如,我如何找到:
number_1和number_2?date_210天或以上的物品date_1?