首页 > 其他分享 >Django:admin后台汉化问题

Django:admin后台汉化问题

时间:2023-07-23 12:11:28浏览次数:39  
标签:verbose admin app 汉化 models django Django name

Django:admin后台汉化问题

1、设置admin站点中文显示,即汉化admin后台管理站点。
  • 方法一:修改settings文件
LANGUAGE_CODE = 'en-us'
 
TIME_ZONE = 'UTC'

更改为:

LANGUAGE_CODE = 'zh-Hans'
 
TIME_ZONE = 'Asia/Shanghai'
  • 方法二:添加中间件(注意:中间件是有顺序的,不要随意更改。)
    添加LocaleMiddleware,按下面的顺序设置即可。
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',

    'django.middleware.locale.LocaleMiddleware',        #支持中文语言
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
2、设置model字段名称汉化

在后台注册数据库后,admin后台才可以实现对models的管理,因此如果想要汉化字段,则需要修改的是model,而不是表单(或其他)。

class Product(models.Model):
    id = models.IntegerField('序号',primary_key=True)        #第一种方式:在最前面直接写。
    name = models.CharField(max_length=50, null=False,verbose_name='名称')        
    
    #第二种方式:标准写法,用verbose_name字段来定义。
    weight = models.CharField(max_length=20, null=True, verbose_name='重量')
    size = models.CharField('尺寸', max_length=20, null=True)
    type = models.ForeignKey(Type, on_delete=models.CASCADE,verbose_name='类型',)

    def __str__(self):
        return self.name
3、设置model名称汉化

即要汉化数据表名,也就是模型类名。这个需要通过class Meta:中的verbose_name和verbose_name_plural来设置。

class Product(models.Model):
    id = models.IntegerField('序号',primary_key=True)
    name = models.CharField(max_length=50, null=False,verbose_name='名称')
    weight = models.CharField(max_length=20, null=True, verbose_name='重量')
    size = models.CharField('尺寸', max_length=20, null=True)
    type = models.ForeignKey(Type, on_delete=models.CASCADE,verbose_name='类型',)

    def __str__(self):
        return self.name

    class Meta:
        # 复数形式,如果只设置verbose_name,在Admin会显示为“产品信息s”
        verbose_name_plural = "产品信息"
        verbose_name = "产品信息"
4、设置app名称汉化

要实现app(这里以index为例)名称的汉化,主要有app中的__init__.py文件实现。

#修改app(index)后台显示名称为中文。

from django.apps import AppConfig
import os

#修改app在Admin后台显示的名称

#default_app_config的值来自apps.py的类名
default_app_config = 'index.IndexConfig'

#获取当前app的命名
def get_current_app_name(_file):
    return os.path.split(os.path.dirname(_file))[-1]

#重写类IndexConfig
class IndexConfig(AppConfig):
    name = get_current_app_name(__file__)
    verbose_name = '网站首页'       #这个就是汉化后的名称。

标签:verbose,admin,app,汉化,models,django,Django,name
From: https://www.cnblogs.com/DQ-MINE/p/17574846.html

相关文章

  • Django学习笔记:第三章D的路由和视图
    1.网站的入口--路由和视图URL是网站Web服务的入口。用户在浏览器输入URL发出请求后,django会根据路由系统,运行对应的视图函数,然后返回信息到浏览器中。1.1认识路由创建项目时,会自动生成urls.文件,文件中定义了项目的路由信息,成为项目的路由解析入口。在自建的应用中可以手动配置......
  • python 使用django 快速搭建API接口
    Python使用Django快速搭建API接口介绍在Web开发中,API(ApplicationProgrammingInterface)接口是用于不同系统之间进行数据交换的重要手段。Django是一个功能强大的PythonWeb框架,可以快速搭建高效的API接口。本文将介绍如何使用Django快速搭建API接口,并提供代码示例。准备工作在......
  • .Net7 IDE智能提示汉化
    本地化xml生成工具工具以dotnetcli发布,使用dotnettool进行安装dotnettoolinstall-gislocalizer复制.net7的汉化包已经有现成的了,可以直接进行安装islocalizerinstallauto-mnet7.0-lzh-cn复制工具会自动从github下载对应的包进行安装(可能需要访问加速......
  • Admin.NET
    下载源码后,后端启动项目Admin.NET.Web.Entry(显示的是swagger页面),前端运行步骤:1、安装依赖pnpminstall2、运行pnpmrundev,即可登录系统的管理页面。默认数据库的修改:项目默认使用的是sqlite数据库,而且框架本身和业务使用的是同一个数据库。如果你要改成其他的,直接修改项目Ad......
  • Django学习笔记:第二章django的安装和创建应用
    1.安装Django终端运行pipinstalldjango查看django是否安装成功python-mdjango--version1.1安装虚拟环境在控制台运行pipinstallvirtualenv1.1.2创建虚拟环境在特定文件夹内打开终端运行virtualenv-pD:\program_condition\python\python.exeenv_djvir......
  • Django响应
    响应对象:HttpResponse对象​ 响应对象主要有三种形式:HttpResponse()、render()、redirect()。(1)HttpResponse():返回文本,参数为字符串,字符串中写文本内容。如果参数为字符串里含有html标签,也可以渲染。defrunoob(request):#returnHttpResponse("菜鸟教程")retu......
  • 【补充】Django框架之IFrame中的跨域问题
    【一】iframe中的跨域问题详解在网页开发中浏览器会应用跨域安全策略,限制不同域名之间的交互。跨域问题指的是如果一个网页的脚本尝试访问另一个域名下的资源或与其通信时,浏览器会拒绝这样的请求。其中,使用<iframe>标签嵌套其他网页是一种常见的前端技术。然而,由于<i......
  • 【补充】Django中路由分发的本质
    【补充】Django中路由分发的本质【一】路由分发机制在Django中,admin路由分发的本质是将管理员后台管理功能与应用程序正常的URL分发机制进行了分离。admin路由分发可以让开发者方便地创建、配置和管理应用程序的后台管理界面。【二】关键部分admin.site.register(mod......
  • mysqladmin
    mysqladminMySQL服务器管理客户端补充说明mysqladmin命令是mysql服务器管理任务的客户端工具,它可以检查mytsql服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。语法mysqladmin(选项)(参数)选项-h:MySQL服务器主机名或ip地址;-u:连接MySQL服务器......
  • 前后端分离实现注册+登录(Vue3.0 + Django3.2)
    博客地址:https://www.cnblogs.com/zylyehuo/一、使用vite+webstorm搭建Vue环境,构建前端1、结构树2、main.jsimport{createApp}from'vue'//import'./style.css'importAppfrom'./App.vue'importrouterfrom"./utils/router";......