Django:可以覆盖Admin排序操作吗?

时间:2015-05-20 05:13:52

标签: django django-admin

我觉得这应该是可能的,但我无法解决问题。

我有一个模特:

class ModelClass (models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()
    nickname = models.CharField(max_length=32)

在Django管理员列表屏幕中,有任何方法,当用户点击名称'的顶部时,用于排序'昵称'的列价值观?

我觉得应该有一种拦截处理的方法,否则会导致结果集响应于列顶部的点击,然后在允许之前按照我想要的方式进行分类列表屏幕重新绘制。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用ModelAdmin的方法在列表中输出name,并使用已定义的admin_order_field属性:

class ModelClassAdmin(admin.ModelAdmin):

    list_display = ('get_name', 'email')

    def get_name(self, obj):
        return obj.name
    get_name.short_description = 'name'
    get_name.admin_order_field = 'nickname'