fix(菜单): 修复新增菜单时排序错误的bug

This commit is contained in:
ahhui
2023-08-03 18:01:49 +08:00
committed by 李强
parent 191e57dcd9
commit 34c55cfd7e

View File

@@ -10,6 +10,7 @@ from rest_framework import serializers
from rest_framework.decorators import action from rest_framework.decorators import action
from dvadmin.system.models import Menu, RoleMenuPermission 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.json_response import SuccessResponse, ErrorResponse
from dvadmin.utils.serializers import CustomModelSerializer from dvadmin.utils.serializers import CustomModelSerializer
from dvadmin.utils.viewset import CustomModelViewSet from dvadmin.utils.viewset import CustomModelViewSet
@@ -23,7 +24,8 @@ class MenuSerializer(CustomModelSerializer):
hasChild = serializers.SerializerMethodField() hasChild = serializers.SerializerMethodField()
def get_menuPermission(self, instance): 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: if queryset:
return queryset return queryset
else: else:
@@ -47,6 +49,11 @@ class MenuCreateSerializer(CustomModelSerializer):
""" """
name = serializers.CharField(required=False) 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: class Meta:
model = Menu model = Menu
fields = "__all__" fields = "__all__"