是否有方法可以禁用django管理更改列表中某些字段的排序功能,因此对于这些字段,用户无法单击列标题来对列表进行排序。在
我试过以下方法,但没用。在
https://djangosnippets.org/snippets/2580/
我也厌倦了重写ModelAdmin中的changelist\u视图,但也没有发生任何事情。在
def changelist_view(self, request, extra_context=None):
self.ordering_fields = ['id']
return super(MyModelAdmin, self).changelist_view(request, extra_context)
在上述情况下,我只允许用户按ID对列表进行排序
有人有建议吗?谢谢。在
对于django1.7(或者我上次使用的版本)不支持这样的东西。一个可能的麻烦工作是定义一个模型类方法并使用该方法代替模型字段。在
由于
show_other_field
是一个模型类方法,django不知道如何对该方法的返回结果进行排序(或处理)。在但正如我所说,这是一种肮脏的黑客行为,根据用例可能需要比显示模型字段更多的处理(可能还需要更多的数据库调用)。在
额外:如果您想使一个模型方法可排序,则必须传递
^{pr2}$admin_order_field
值,如下所示:这将使您的模型方法在admin
list_display
中可排序。但是必须传递一个在数据库api的order_by
方法中可用的字段或关系。在相关问题 更多 >
编程相关推荐