Django:可以覆盖管理员排序操作吗?
Django : possible to override Admin sort action?
我觉得这应该是可能的,但我不知道怎么做。
我有一个模型:
class ModelClass (models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
nickname = models.CharField(max_length=32)
在 Django 管理列表屏幕中,当用户单击 'name' 列的顶部以对 'nickname' 值进行排序时,有什么办法吗?
我觉得应该有一种方法来拦截处理,否则会导致结果集响应列顶部的单击而重新排序,然后按照我之前想做的方式进行排序允许重新绘制列表屏幕。
有什么想法吗?
您可以使用 ModelAdmin 的方法和定义的 admin_order_field
属性:
输出列表中的 name
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'
我觉得这应该是可能的,但我不知道怎么做。
我有一个模型:
class ModelClass (models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
nickname = models.CharField(max_length=32)
在 Django 管理列表屏幕中,当用户单击 'name' 列的顶部以对 'nickname' 值进行排序时,有什么办法吗?
我觉得应该有一种方法来拦截处理,否则会导致结果集响应列顶部的单击而重新排序,然后按照我之前想做的方式进行排序允许重新绘制列表屏幕。
有什么想法吗?
您可以使用 ModelAdmin 的方法和定义的 admin_order_field
属性:
name
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'