diff --git a/backend/dvadmin/system/views/menu.py b/backend/dvadmin/system/views/menu.py index 63077e5..f0765f2 100644 --- a/backend/dvadmin/system/views/menu.py +++ b/backend/dvadmin/system/views/menu.py @@ -10,6 +10,7 @@ from rest_framework import serializers from rest_framework.decorators import action from dvadmin.system.models import Menu, RoleMenuPermission +from dvadmin.system.views.menu_button import MenuButtonSerializer from dvadmin.utils.json_response import SuccessResponse, ErrorResponse from dvadmin.utils.serializers import CustomModelSerializer from dvadmin.utils.viewset import CustomModelViewSet @@ -23,7 +24,8 @@ class MenuSerializer(CustomModelSerializer): hasChild = serializers.SerializerMethodField() def get_menuPermission(self, instance): - queryset = instance.menuPermission.order_by('-name').values_list('name', flat=True) + queryset = instance.menuPermission.order_by('-name').values('id', 'name', 'value') + # MenuButtonSerializer(instance.menuPermission.all(), many=True) if queryset: return queryset else: @@ -47,6 +49,11 @@ class MenuCreateSerializer(CustomModelSerializer): """ name = serializers.CharField(required=False) + def create(self, validated_data): + last_sort = Menu.objects.filter(parent_id=validated_data.get('parent', None)).order_by('-sort').first().sort + validated_data['sort'] = last_sort + 1 + return super().create(validated_data) + class Meta: model = Menu fields = "__all__"