您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Django如何设置admin后台表和App为中文名
## 前言
在Django开发中,默认的admin后台显示的模型名称和App名称都是英文的。但在实际项目中,我们经常需要将这些名称显示为中文,以便于中文用户理解和管理。本文将详细介绍如何通过Django的国际化功能和模型Meta类来实现这一需求。
## 一、设置App的显示名称
### 方法1:在apps.py中设置verbose_name
1. 在目标App的`apps.py`文件中修改`verbose_name`属性:
```python
# myapp/apps.py
from django.apps import AppConfig
class MyappConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'myapp'
verbose_name = '我的应用' # 设置中文显示名称
__init__.py
中设置default_app_config:# myapp/__init__.py
default_app_config = 'myapp.apps.MyappConfig'
如果你使用的是Django 3.2+版本,可以省略__init__.py
的设置,直接在apps.py
中完成配置。
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
class Meta:
verbose_name = '产品' # 单数形式
verbose_name_plural = '产品列表' # 复数形式
settings.py
中:# settings.py
LANGUAGE_CODE = 'zh-hans'
USE_I18N = True
ugettext_lazy
(Django 3.0+使用gettext_lazy
):from django.db import models
from django.utils.translation import gettext_lazy as _
class Product(models.Model):
name = models.CharField(_('产品名称'), max_length=100)
class Meta:
verbose_name = _('产品')
verbose_name_plural = _('产品列表')
class Product(models.Model):
name = models.CharField('产品名称', max_length=100)
price = models.DecimalField('产品价格', max_digits=10, decimal_places=2)
from django.utils.translation import gettext_lazy as _
class Product(models.Model):
name = models.CharField(_('产品名称'), max_length=100)
price = models.DecimalField(_('产品价格'), max_digits=10, decimal_places=2)
from django.utils.translation import gettext_lazy as _
from django.utils.translation import ugettext_lazy as _
@admin.register
或admin.site.register
# models.py
from django.db import models
from django.utils.translation import gettext_lazy as _
class Category(models.Model):
name = models.CharField(_('分类名称'), max_length=100)
class Meta:
verbose_name = _('产品分类')
verbose_name_plural = _('产品分类')
# apps.py
from django.apps import AppConfig
class ShopConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'shop'
verbose_name = '商城系统'
通过以上方法,我们可以轻松地将Django admin后台的表名和App名设置为中文,大大提升中文用户的使用体验。推荐使用国际化方法(gettext_lazy),这样不仅支持中文,还能方便地扩展其他语言支持。
记得在完成设置后,检查admin后台是否正常显示中文名称,如有问题可以尝试清除缓存或重启开发服务器。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。