Files
school-meal/backend/meals/migrations/0005_dish_pinyin.py
T
root 65b52b052f 营养校准、后台美化、静态走对象存储 CDN、标题可编辑、admin 拼音搜索
- 菜品营养按食物成分表+烹饪方式校准(calibrate_nutrition 命令)
- 后台接入 jazzmin 主题美化,移除 Google Fonts(模板覆盖)
- 前端/后台静态资源指向 qnycdn 对象存储 CDN(vite base + DJANGO_STATIC_URL)
- 菜单标题学校名称/周数可编辑,日期随周数计算
- admin 搜索支持拼音首字母/全拼(Dish.pinyin 索引,pypinyin)
- Dockerfile 使用清华 pip 镜像源
2026-08-06 21:11:14 +08:00

28 lines
823 B
Python

from django.db import migrations, models
from pypinyin import Style, lazy_pinyin
def fill_pinyin(apps, schema_editor):
Dish = apps.get_model('meals', 'Dish')
for dish in Dish.objects.all():
full = ''.join(lazy_pinyin(dish.name))
initials = ''.join(lazy_pinyin(dish.name, style=Style.FIRST_LETTER))
dish.pinyin = f'{full} {initials}'
dish.save(update_fields=['pinyin'])
class Migration(migrations.Migration):
dependencies = [
('meals', '0004_dish_cuisine'),
]
operations = [
migrations.AddField(
model_name='dish',
name='pinyin',
field=models.CharField(blank=True, editable=False, max_length=200, verbose_name='拼音索引'),
),
migrations.RunPython(fill_pinyin, migrations.RunPython.noop),
]