简介:许多朋友问有关如何在Django安装Xadmin的问题。本文的首席CTO注释将为您提供详细的答案,以供您参考。我希望这对每个人都会有所帮助!让我们一起看看!
1. Django管理员不适合最终用户使用
Django管理员是为管理员而不是最终用户设计的。Django管理员的存在是为了促进管理员添加修改并删除数据和管理站点任务。
2.列表显示
如上图所示,由于模型的默认文本是XXX对象,因此“管理员列表”页面中的默认显示也是XXX对象。如果要显示更多有用的信息,我们可以设置以下设置:
为模型编写__unicode __()方法
如果要在列表页面中显示更多项目,则需要使用list_display
__unicode()__示例:
#models.py
来自django.db导入模型
班级文章(Models.Model):
title = models.charfield(max_length = 100)
slug = model.charfield(max_length = 100)
content = model.textfield()
is_publy = model.boolenfield(默认= false)
def __unicode __(self):
返回self.title
#admin.py
来自django.contrib导入管理
从.models导入文章
admin.Site.Register(文章)
结果:
如果要显示其他项目:
#admin.py
来自django.contrib导入管理
从.models导入文章
类articleadmin(admin.modeladmin):
list_display =('title','iS_perlished')
Admin.Site.Register(文章,Articleadmin)
结果:
3.将动作添加到ModelAdmin
我们可以将方法或函数添加到modladmin中,以使管理接口更符合我们的需求。
例如,我们希望在管理接口中显示一个清晰的URL,但是当我们在模型中定义get_absolute_url()方法时,django admin为我们提供了完全不同的URL。SOWE可以通过以下方法定义URL:
#admin.py
来自django.contrib导入管理
从django.core.urlresolvers导入反向
来自django.utils.html导入format_html
从.models导入文章
类articleadmin(admin.modeladmin):
list_display =('title','iS_perbored',),),),)
readonly_fields =('show_url',)
def show_url(self,实例):
url = reververs('aprent_detail',kwargs = {'pl':instance.pk})
响应= format_html(“”“”“,url)
返回响应
show_url.short_descripting = u“文章预览”
#显示html标签
#对于用户提交的数据,切勿这样设置!
show_url.allow_tags = true
请注意,如果错误使用会带来隐藏的安全危害,则允许_tags属性,默认值为false。如果设置为true,
在管理员中允许使用HTML标签。因此,我们使用的原则是,对于用户输入的信息,切勿设置laster_tags = true。
只有在系统生成内容而用户无法修改的内容时,他们才能使用ally_tags = true。
4.在多用户编辑器环境中使用list_edistable
Django管理员为我们提供了修改列表页面上的模型属性的功能,以便管理员一次可以修改多个属性。如果管理员只有一个人
然后没有问题,但是在多用户环境中,会有一个严重的潜在问题。因为在列表页面上提交的修改信息记录了位置,而不是模型的主要密钥。
例如,默认情况下,“文章列表”页面在创建顺序中安排了默认值。用户A打开文章列表页面并开始修改。同时,用户B添加了新文章。目前,此时,此时,此时,此时
用户A提交修改后,文章信息将是错误的。
解决方案:
Django-Crispy-Forms版本问题
PIP列表
检查已安装的Django-Crispy-Forms版本,
环境是
django-crispy形式== 1.5.2
删除原始版本
PIP卸载Django-Crispy形式
重新安装
PIP安装Django-Crispy-Forms == 1.4.0
减少以解决条件的版本。
Django本质上是Python语言的类库,因此我们可以通过PIP工具安装它(PIP工具是Python安装的组件之一)。
打开CMD并运行“ PIP安装Django”,将安装最新版本的PYPI版本。如果指定版本可以以“ pip install django ==版本号”的形式安装。安装后,“成功安装...”将出现。在python交互式环境中使用“ pip list”命令如果有django module.或使用以下命令查看django版本信息。
导入django
打印(django.get_version())
当他有外部钥匙时,它将以Ajax模式加载
当数据量太大时很有用
我的环境是python3.6+django2.0.7+xadmin
除了过滤器中添加的字段外,它在表单中的输入接口中有效。
此问题的原因是django2中的外国keyke和django1不同
修改xadmin/views/edit.py
改成
修改xadmin/插件/relfield.py
改成
结论:以上是向您介绍的主要CTO注释的所有内容,如何在Django安装Xadmin。我希望这对每个人都会有所帮助。如果您想进一步了解这一点,请记住要收集对该网站的关注。