学校订餐菜单生成器:Django+DRF 后端与 React 前端,支持 A/B 双套营养周菜单生成、部分自选、拼音搜索、营养校准、Excel 导出

This commit is contained in:
root
2026-08-06 14:09:27 +08:00
commit 75f214dc40
48 changed files with 4684 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
from django.contrib import admin
from .models import Dish
@admin.action(description='启用所选菜品(参与自动生成)')
def activate_dishes(modeladmin, request, queryset):
queryset.update(is_active=True)
@admin.action(description='停用所选菜品(不再参与自动生成)')
def deactivate_dishes(modeladmin, request, queryset):
queryset.update(is_active=False)
@admin.register(Dish)
class DishAdmin(admin.ModelAdmin):
list_display = ('name', 'cuisine', 'dish_type', 'ingredient_detail', 'protein', 'fat', 'calorie', 'is_active', 'created_at')
list_filter = ('dish_type', 'cuisine', 'is_active')
search_fields = ('name', 'ingredient_detail', 'cuisine')
list_editable = ('cuisine', 'dish_type', 'ingredient_detail', 'protein', 'fat', 'calorie', 'is_active')
list_per_page = 50
actions = [activate_dishes, deactivate_dishes]
fieldsets = (
(None, {'fields': ('name', 'dish_type', 'cuisine', 'is_active')}),
('营养信息', {'fields': ('ingredient_detail', 'protein', 'fat', 'calorie')}),
('其他', {'fields': ('description',), 'classes': ('collapse',)}),
)