相关疑难解决方法(0)

Django admin:如何通过没有数据库字段的自定义list_display字段之一进行排序

# 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以对此列进行排序 - 它按预期工作!

sorting django django-admin

113
推荐指数
2
解决办法
5万
查看次数

标签 统计

django ×1

django-admin ×1

sorting ×1