gpt4 book ai didi

Django 管理操作复选框未显示在 chaneglist_view

转载 作者:行者123 更新时间:2023-12-04 18:16:12 24 4
gpt4 key购买 nike

我的问题是,在 django 管理 ListView 中,当我使用 changelist_view 时未显示操作复选框在管理员中。我给了admin.py下面的代码。请仔细阅读并为我提供解决方案。

def changelist_view(self, request, extra_context=None):
if request.user == 'admin':
self.list_display_links = ('project', )
self.list_display = ('project', 'task_name', 'assignee_role', 'assignee_name', )
else:
self.list_display_links = ('task_name', )
self.list_display = ( 'task_name', 'project', 'priority', )
return super(ModelAdmin, self).changelist_view(request, extra_context = None)

这里我想要实现的是改变 list_displaylist_display_links基于用户的字段。当我使用 changelist_view 时,我正在实现它.但是当我这样做时,所有用户的操作复选框都被隐藏了。

那么如何在使用 changelist_view 时显示操作复选框或者如何在不使用 changelist_view 的情况下实现上述内容.请提供解决方案。

最佳答案

浏览django安装源文件django/contrib/admin/options.py后找到了解决办法.使用 changelist_view 时显示 Action 复选框将其包含在 list_display 中.但是我不知道为什么在使用 changelist_view 时它被隐藏了.

def changelist_view(self, request, extra_context=None):
if request.user == 'admin':
self.list_display_links = ('project', )
self.list_display = ('action_checkbox', 'project', 'task_name', 'assignee_role', 'assignee_name', )
else:
self.list_display_links = ('task_name', )
self.list_display = ( 'task_name', 'project', 'priority', )
return super(ModelAdmin, self).changelist_view(request, extra_context = None)

所以这里只有当当前登录用户是 admin 时才会显示操作复选框,因为它包含在 list_display 中。 .

关于Django 管理操作复选框未显示在 chaneglist_view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11663539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com