我想通过不同的权限自定义list_display。例如,super可以看到“价格”,其他人则看不到。管理员.py
class bookAdmin(admin.ModelAdmin):
def display_resort(request):
if request.user.is_super:
resort_list = ["name", "author", "price"]
else:
resort_list = ["name", "author"]
return resort_list
list_display = ['display_resort']
Run Code Online (Sandbox Code Playgroud)
但我得到了
display_resort() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)
我认为返回的内容不正确,我也尝试过在元组、迭代和字符串等中返回“resort_list”。但都失败了。简而言之,我想自定义整个 list_display 而不仅仅是其中的一个字段。寻求您的帮助,谢谢。
---在freylis的帮助下,我现在的代码是:
class bookAdmin(admin.ModelAdmin):
def get_list_display(self, request):
default_list_display = super(bookAdmin, self).get_list_display(request)
if request.user.is_super:
default_list_display = ["name", "author", "price"]
else:
default_list_display = ["name", "author"]
return default_list_display
Run Code Online (Sandbox Code Playgroud)