From 4aceb3ae25cd59d2d181405812e77b832124a65a Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Sat, 4 Jul 2026 15:18:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=AD=E6=96=87=E5=8C=96=20django-ad?= =?UTF-8?q?min=20=E5=88=86=E7=BB=84=E4=B8=8E=E8=A1=A8=E5=90=8D=20(T-602=20?= =?UTF-8?q?=E5=B1=821-3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 5 个 app 加 AppConfig.verbose_name(中文分组名) - 11 个模型加 Meta.verbose_name/verbose_name_plural(中文表名) - 3 条 AlterModelOptions 迁移(仅 options,无 DB schema 变更) - LANGUAGE_CODE=zh-hans / USE_I18N=True 已在,Django 自带 admin 与 auth 已中文 - 仅显示层,不改字段名/逻辑/表结构 Co-Authored-By: Claude Opus 4.8 --- apps/ai/apps.py | 1 + ..._options_alter_aimodel_options_and_more.py | 25 ++++++++++++++ apps/ai/models.py | 6 ++++ apps/api/apps.py | 1 + apps/billing/apps.py | 1 + ...ons_alter_exchangerate_options_and_more.py | 33 +++++++++++++++++++ apps/billing/models.py | 10 ++++++ apps/portal/apps.py | 1 + apps/users/apps.py | 1 + ...key_options_alter_user_options_and_more.py | 25 ++++++++++++++ apps/users/models.py | 6 ++++ 11 files changed, 110 insertions(+) create mode 100644 apps/ai/migrations/0003_alter_aiconfigauditlog_options_alter_aimodel_options_and_more.py create mode 100644 apps/billing/migrations/0005_alter_callrecord_options_alter_exchangerate_options_and_more.py create mode 100644 apps/users/migrations/0004_alter_apikey_options_alter_user_options_and_more.py diff --git a/apps/ai/apps.py b/apps/ai/apps.py index 4fc2e53..270dcfe 100644 --- a/apps/ai/apps.py +++ b/apps/ai/apps.py @@ -4,3 +4,4 @@ from django.apps import AppConfig class AiConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'apps.ai' + verbose_name = 'AI 模型配置' diff --git a/apps/ai/migrations/0003_alter_aiconfigauditlog_options_alter_aimodel_options_and_more.py b/apps/ai/migrations/0003_alter_aiconfigauditlog_options_alter_aimodel_options_and_more.py new file mode 100644 index 0000000..b99e08a --- /dev/null +++ b/apps/ai/migrations/0003_alter_aiconfigauditlog_options_alter_aimodel_options_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.2.15 on 2026-07-04 07:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('ai', '0002_aiconfigauditlog'), + ] + + operations = [ + migrations.AlterModelOptions( + name='aiconfigauditlog', + options={'ordering': ('-created_at', '-id'), 'verbose_name': 'AI 配置审计日志', 'verbose_name_plural': 'AI 配置审计日志'}, + ), + migrations.AlterModelOptions( + name='aimodel', + options={'ordering': ('name',), 'verbose_name': 'AI 模型', 'verbose_name_plural': 'AI 模型'}, + ), + migrations.AlterModelOptions( + name='modelalias', + options={'ordering': ('operation_type', 'alias'), 'verbose_name': '能力别名', 'verbose_name_plural': '能力别名'}, + ), + ] diff --git a/apps/ai/models.py b/apps/ai/models.py index 3695a30..8fc9e9f 100644 --- a/apps/ai/models.py +++ b/apps/ai/models.py @@ -39,6 +39,8 @@ class AiModel(models.Model): class Meta: db_table = "ai_model" + verbose_name = "AI 模型" + verbose_name_plural = "AI 模型" ordering = ("name",) def __str__(self) -> str: @@ -103,6 +105,8 @@ class ModelAlias(models.Model): class Meta: db_table = "model_alias" + verbose_name = "能力别名" + verbose_name_plural = "能力别名" ordering = ("operation_type", "alias") constraints = [ models.UniqueConstraint( @@ -163,6 +167,8 @@ class AiConfigAuditLog(models.Model): class Meta: db_table = "ai_config_audit_log" + verbose_name = "AI 配置审计日志" + verbose_name_plural = "AI 配置审计日志" ordering = ("-created_at", "-id") indexes = [ models.Index(fields=("target_type", "target_id")), diff --git a/apps/api/apps.py b/apps/api/apps.py index ae75201..b134499 100644 --- a/apps/api/apps.py +++ b/apps/api/apps.py @@ -4,3 +4,4 @@ from django.apps import AppConfig class ApiConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'apps.api' + verbose_name = '对外 API' diff --git a/apps/billing/apps.py b/apps/billing/apps.py index 21971f8..0438174 100644 --- a/apps/billing/apps.py +++ b/apps/billing/apps.py @@ -4,3 +4,4 @@ from django.apps import AppConfig class BillingConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'apps.billing' + verbose_name = '计费与充值' diff --git a/apps/billing/migrations/0005_alter_callrecord_options_alter_exchangerate_options_and_more.py b/apps/billing/migrations/0005_alter_callrecord_options_alter_exchangerate_options_and_more.py new file mode 100644 index 0000000..da1c562 --- /dev/null +++ b/apps/billing/migrations/0005_alter_callrecord_options_alter_exchangerate_options_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 5.2.15 on 2026-07-04 07:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('billing', '0004_rechargeorder_and_more'), + ] + + operations = [ + migrations.AlterModelOptions( + name='callrecord', + options={'ordering': ('-created_at', '-id'), 'verbose_name': '调用记录', 'verbose_name_plural': '调用记录'}, + ), + migrations.AlterModelOptions( + name='exchangerate', + options={'ordering': ('-effective_from', '-id'), 'verbose_name': '汇率', 'verbose_name_plural': '汇率'}, + ), + migrations.AlterModelOptions( + name='pointsledger', + options={'ordering': ('-created_at', '-id'), 'verbose_name': '点数流水', 'verbose_name_plural': '点数流水'}, + ), + migrations.AlterModelOptions( + name='pricingrule', + options={'ordering': ('operation_type', 'alias', 'resolution'), 'verbose_name': '计费规则', 'verbose_name_plural': '计费规则'}, + ), + migrations.AlterModelOptions( + name='rechargeorder', + options={'ordering': ('-created_at', '-id'), 'verbose_name': '充值订单', 'verbose_name_plural': '充值订单'}, + ), + ] diff --git a/apps/billing/models.py b/apps/billing/models.py index 4770b65..8dff4e6 100644 --- a/apps/billing/models.py +++ b/apps/billing/models.py @@ -52,6 +52,8 @@ class CallRecord(models.Model): class Meta: db_table = "call_record" + verbose_name = "调用记录" + verbose_name_plural = "调用记录" ordering = ("-created_at", "-id") constraints = [ models.CheckConstraint( @@ -86,6 +88,8 @@ class PricingRule(models.Model): class Meta: db_table = "pricing_rule" + verbose_name = "计费规则" + verbose_name_plural = "计费规则" ordering = ("operation_type", "alias", "resolution") constraints = [ models.UniqueConstraint( @@ -129,6 +133,8 @@ class ExchangeRate(models.Model): class Meta: db_table = "exchange_rate" + verbose_name = "汇率" + verbose_name_plural = "汇率" ordering = ("-effective_from", "-id") constraints = [ models.CheckConstraint( @@ -190,6 +196,8 @@ class RechargeOrder(models.Model): class Meta: db_table = "recharge_order" + verbose_name = "充值订单" + verbose_name_plural = "充值订单" ordering = ("-created_at", "-id") constraints = [ models.CheckConstraint( @@ -256,6 +264,8 @@ class PointsLedger(models.Model): class Meta: db_table = "points_ledger" + verbose_name = "点数流水" + verbose_name_plural = "点数流水" ordering = ("-created_at", "-id") constraints = [ models.CheckConstraint( diff --git a/apps/portal/apps.py b/apps/portal/apps.py index 59d451d..6a8042e 100644 --- a/apps/portal/apps.py +++ b/apps/portal/apps.py @@ -4,3 +4,4 @@ from django.apps import AppConfig class PortalConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'apps.portal' + verbose_name = '用户端' diff --git a/apps/users/apps.py b/apps/users/apps.py index 2bb189c..e9a4672 100644 --- a/apps/users/apps.py +++ b/apps/users/apps.py @@ -4,3 +4,4 @@ from django.apps import AppConfig class UsersConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'apps.users' + verbose_name = '用户与钱包' diff --git a/apps/users/migrations/0004_alter_apikey_options_alter_user_options_and_more.py b/apps/users/migrations/0004_alter_apikey_options_alter_user_options_and_more.py new file mode 100644 index 0000000..a630bfb --- /dev/null +++ b/apps/users/migrations/0004_alter_apikey_options_alter_user_options_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.2.15 on 2026-07-04 07:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0003_apikey_userwallet'), + ] + + operations = [ + migrations.AlterModelOptions( + name='apikey', + options={'ordering': ('-created_at', '-id'), 'verbose_name': 'API 密钥', 'verbose_name_plural': 'API 密钥'}, + ), + migrations.AlterModelOptions( + name='user', + options={'verbose_name': '用户', 'verbose_name_plural': '用户'}, + ), + migrations.AlterModelOptions( + name='userwallet', + options={'ordering': ('user_id',), 'verbose_name': '用户钱包', 'verbose_name_plural': '用户钱包'}, + ), + ] diff --git a/apps/users/models.py b/apps/users/models.py index 3c0193c..7c4ee84 100644 --- a/apps/users/models.py +++ b/apps/users/models.py @@ -34,6 +34,8 @@ class User(AbstractUser): class Meta: db_table = "user" + verbose_name = "用户" + verbose_name_plural = "用户" class UserWallet(models.Model): @@ -48,6 +50,8 @@ class UserWallet(models.Model): class Meta: db_table = "user_wallet" + verbose_name = "用户钱包" + verbose_name_plural = "用户钱包" ordering = ("user_id",) constraints = [ models.CheckConstraint( @@ -86,6 +90,8 @@ class ApiKey(models.Model): class Meta: db_table = "api_key" + verbose_name = "API 密钥" + verbose_name_plural = "API 密钥" ordering = ("-created_at", "-id") indexes = [ models.Index(fields=("user", "status")),