eagleow

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 = \'网站首页\'       #这个就是汉化后的名称。

分类:

技术点:

相关文章:

  • 2021-06-01
  • 2021-09-21
  • 2021-12-23
  • 2021-09-10
  • 2021-12-28
  • 2021-12-24
  • 2021-08-09
  • 2021-11-12
猜你喜欢
  • 2018-03-26
  • 2021-11-29
  • 2021-12-27
  • 2021-09-19
  • 2021-12-28
  • 2021-06-14
  • 2021-09-21
相关资源
相似解决方案