admin是什么意思翻译成中文

8)admin 界面默认是英文,如需要修改成中文,修改settings.py中的属性。

LANGUAGE_CODE?=?’zh-Hans’

admin是什么意思翻译成中文

注意:list_display不支持多对多的,需要再进行处理,例如:

#?模型materials?=?models.ManyToManyField(‘Material’,?verbose_name=’包含材料’)#?注册@admin.register(ComboPlatter)class?ComboPlatterAdmin(admin.ModelAdmin):????list_display?=?[‘id’,?’materials’,’total_price’,?’remarks’] admin是什么意思翻译成中文

我们可以通过自定义个方法,来处理这个多对多字段:

@admin.register(ComboPlatter)class?ComboPlatterAdmin(admin.ModelAdmin):????list_display?=?[‘id’,?’name’,?’total_price’,?’material_list’,?’remarks’]????empty_value_display?=?”–“????#?自定义list_display????# list_display选项不能用于显示多对多的字段(如materials)。????#?如果需要通过list_display选项显示多对多的字段或模型中原本不存在的字段或方法,我们需要新增自定义的list_play方法。????def?material_list(self,?obj):????????return?[material.name?for?material?in?obj.materials.all()]?#?获取材料图片所有对象,然后再迭代获取对应名称组成列表????material_list.short_description?=?’可选材料’ admin是什么意思翻译成中文

当然上面自定义方法不局限于多对多,有些特殊的也可以自定义,比如要显示什么颜色。

例如,当销量大于0时,红色显示,默认是直接显示字段:

list_display?=?[‘id’,?’name’,?’total_price’,?’material_list’,?’remarks’,?’sale_nums’] admin是什么意思翻译成中文

我们可以重新定义方法:

list_display?=?[‘id’,?’name’,?’total_price’,?’material_list’,?’remarks’,?’sale_nums_display_color’]def?sale_nums_display_color(self,?obj):????if?obj.sale_nums?>?0:????????color_code?=?’red’????else:????????color_code?=?’#000′????????????return?format_html(????????????????'{}’,?color_code,?obj.sale_nums????????????)sale_nums_display_color.short_description?=?’套餐销量’ admin是什么意思翻译成中文

我们可以修改默认显示样式:

empty_value_display?=?”–” admin是什么意思翻译成中文

11、Django admin默认的action只有删除(delete)。

admin是什么意思翻译成中文

但是有些问题,

1)显示的是繁体中文:

admin是什么意思翻译成中文

检查后发现原因在于CKEditor会使用settings.py文件中的语言设置。而我们settings.py中设置的LANGUAGE_CODE = ‘zh-hans’简体中文,这是因为Django2以上文件夹中没有zh-cn文件夹,简体中文是zh_Hans文件夹

直接设置LANGUAGE_CODE = ‘zh-cn’会导致异常。但是这样设置又会导致ckeditor找不到名为zh-Hans.js的语言文件,当找不到文件时,CKEditor会找到第一个名称包含zh的js文件去调用。而zh.js中是繁体字。

admin是什么意思翻译成中文

解决方案:

将ckeditor语言文件名称,将zh.js字典内容替换成了zh-cn.js中的简体内容。

ckeditor语言文件所在路径:env_decorationLibsite-packagesckeditorstaticckeditorckeditorlang

admin是什么意思翻译成中文

2)因为我们在富文本里面编辑内容,在数据库中插入的是带html代码的样式。

admin是什么意思翻译成中文

如果直接获取不处理的话,就会显示类似这种:

admin是什么意思翻译成中文

原因分析:在文章详情页没有看到预期的效果,而是类似于一堆乱码一样的HTML 标签,这些标签本应该在浏览器显示它本身的格式,但是 Django 出于安全方面的考虑,任何的HTML 代码在 Django 的模板中都会被转义(即显示原始的 HTML 代码,而不是经浏览器渲染后的格式)。

所以我们需要在显示的时候处理下,使其正常显示。

解决:方案1:为了解除转义,只需在模板标签使用 safe 过滤器即可,告诉 Django,这段文本是安全的,你什么也不用做。

对于如果传递给其他前端的,比如小程序,则有相对应的处理方式。

更多学习笔记整理于微信公号【Python野路子】

本文来自作者:书影,不代表小新网立场!

转载请注明:https://www.xiaoxinys.cn/599892.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。