如何根据 Django Admin 中的过滤器动态更改 list_view 列?
How can I dinamically change list_view columns based on a filter in Django Admin?
我如何(如果可能的话)根据过滤器更改 Django admin UI 中 list_display
中列的顺序?
例如,如果未应用过滤器,模型的管理列表将显示列 A, B, C, D, E
。如果选择了特定过滤器,则显示的列将更改为 B, C, E, A, D
.
如果可以的话,我该怎么做?我可以更改列的名称以在我的 ModelAdmin
中使用自定义列设备吗?
事实证明,使用模型管理员的 get_list_display()
方法是可能的。
def get_list_display(self, request):
filter_value = request.GET.get('foo', False) # False is the default value if the key is not found
if filter_value and filter_value == 'foo':
list_display = (B, C, E, A, D)
else:
list_display = (A, B, C, D, E)
我如何(如果可能的话)根据过滤器更改 Django admin UI 中 list_display
中列的顺序?
例如,如果未应用过滤器,模型的管理列表将显示列 A, B, C, D, E
。如果选择了特定过滤器,则显示的列将更改为 B, C, E, A, D
.
如果可以的话,我该怎么做?我可以更改列的名称以在我的 ModelAdmin
中使用自定义列设备吗?
事实证明,使用模型管理员的 get_list_display()
方法是可能的。
def get_list_display(self, request):
filter_value = request.GET.get('foo', False) # False is the default value if the key is not found
if filter_value and filter_value == 'foo':
list_display = (B, C, E, A, D)
else:
list_display = (A, B, C, D, E)