首页 > 技术文章 > django xadmin 根据是否管理员 设置只读字段

jingzaixin 2020-07-24 15:37 原文

#指导教程
class GuideHelpXadmin(object):
all_zi_duan = ["id",
"add_time", "update_time"]
list_display = ['guide_project',
'go_to'] # 定义显示的字段
list_filter = [ 'guide_project',] # 定义筛选的字段
search_fields = ['guide_project',] # 定义搜索字段
model_icon = "fa fa-file-text" # 定义图标显示
ordering = ["-add_time"] # 添加默认排序规则显示排序,根据添加时间倒序排序
# readonly_fields = ['write_user','add_time','update_time'] # 设置某些字段为只为可读 #设置了readonly_fields,再设置exclude,exclude对该字段无效,

# exclude = ['case_step'] # 设置某些字段为不显示,即隐藏 #readonly_fields和exclude设置会有冲突
# inlines = [TestCaseInline] # inlines配和TestCaseInline使用,可以直接在项目页面添加测试用例#只能做一层嵌套,不能进行两层嵌套

list_editable = all_zi_duan # 可以在列表页对字段进行编辑
refresh_times = [3, 5] # 对列表页进行定时刷新,配置了3秒和5秒,可以从中选择一个
list_per_page = 50 # 每页设置50条数据,默认每页展示100条数据
# fk_fields = ['test_project_id',] #设置显示外键字段,未生效
list_display_links = ["guide_project", ] # 设置点击链接进入编辑页面的字段
# date_hierarchy = 'add_time' #详细时间分层筛选,未生效
show_detail_fields = ["guide_project", ] # 显示数据详情

list_export = ('xls',) # 控制列表页导出数据的可选格式
show_bookmarks = True # 控制是否显示书签功能

# 设置是否加入导入插件
# import_excel = True # True表示显示使用插件,False表示不显示使用插件,该import_excel变量会覆盖插件中的变量


#可以根据是否为超级用户,设置某些字段为可读,即超级管理员可以进行编辑,而普通用户不可以进行编辑的字段设置
def get_readonly_fields(self):
fields = []
if self.request.user.is_superuser: #
fields = ['add_time', 'update_time']
return fields
else:
fields = ['write_user','add_time','update_time'] #例如,用户,超级管理员可以分配用户,而普通不可以编辑用户
return fields

 

推荐阅读