feat: 列权限初始化
This commit is contained in:
@@ -5,6 +5,7 @@ from rest_framework import serializers
|
|||||||
|
|
||||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'application.settings')
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'application.settings')
|
||||||
import django
|
import django
|
||||||
|
|
||||||
django.setup()
|
django.setup()
|
||||||
from dvadmin.system.models import (
|
from dvadmin.system.models import (
|
||||||
Role, Dept, Users, Menu, MenuButton,
|
Role, Dept, Users, Menu, MenuButton,
|
||||||
@@ -60,9 +61,10 @@ class MenuFieldInitSerializer(CustomModelSerializer):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MenuField
|
model = MenuField
|
||||||
fields = ['id', 'menu','field_name','title','model']
|
fields = ['id', 'menu', 'field_name', 'title', 'model']
|
||||||
read_only_fields = ["id"]
|
read_only_fields = ["id"]
|
||||||
|
|
||||||
|
|
||||||
class MenuInitSerializer(CustomModelSerializer):
|
class MenuInitSerializer(CustomModelSerializer):
|
||||||
"""
|
"""
|
||||||
递归深度获取数信息(用于生成初始化json文件)
|
递归深度获取数信息(用于生成初始化json文件)
|
||||||
@@ -71,6 +73,7 @@ class MenuInitSerializer(CustomModelSerializer):
|
|||||||
children = serializers.SerializerMethodField()
|
children = serializers.SerializerMethodField()
|
||||||
menu_button = serializers.SerializerMethodField()
|
menu_button = serializers.SerializerMethodField()
|
||||||
menu_field = serializers.SerializerMethodField()
|
menu_field = serializers.SerializerMethodField()
|
||||||
|
|
||||||
def get_children(self, obj: Menu):
|
def get_children(self, obj: Menu):
|
||||||
data = []
|
data = []
|
||||||
instance = Menu.objects.filter(parent_id=obj.id)
|
instance = Menu.objects.filter(parent_id=obj.id)
|
||||||
@@ -90,7 +93,7 @@ class MenuInitSerializer(CustomModelSerializer):
|
|||||||
data = []
|
data = []
|
||||||
instance = obj.menufield_set.order_by('field_name')
|
instance = obj.menufield_set.order_by('field_name')
|
||||||
if instance:
|
if instance:
|
||||||
data = list(instance.values('field_name', 'title','model'))
|
data = list(instance.values('field_name', 'title', 'model'))
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def save(self, **kwargs):
|
def save(self, **kwargs):
|
||||||
@@ -131,8 +134,9 @@ class MenuInitSerializer(CustomModelSerializer):
|
|||||||
for field_data in menu_field:
|
for field_data in menu_field:
|
||||||
field_data['menu'] = instance.id
|
field_data['menu'] = instance.id
|
||||||
filter_data = {
|
filter_data = {
|
||||||
'menu':field_data['menu'],
|
'menu': field_data['menu'],
|
||||||
'field_name':field_data['field_name']
|
'field_name': field_data['field_name'],
|
||||||
|
'model': field_data['model']
|
||||||
}
|
}
|
||||||
instance_obj = MenuField.objects.filter(**filter_data).first()
|
instance_obj = MenuField.objects.filter(**filter_data).first()
|
||||||
serializer = MenuFieldInitSerializer(instance_obj, data=field_data, request=self.request)
|
serializer = MenuFieldInitSerializer(instance_obj, data=field_data, request=self.request)
|
||||||
@@ -143,7 +147,7 @@ class MenuInitSerializer(CustomModelSerializer):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Menu
|
model = Menu
|
||||||
fields = ['name', 'icon', 'sort', 'is_link', 'is_catalog', 'web_path', 'component', 'component_name', 'status',
|
fields = ['name', 'icon', 'sort', 'is_link', 'is_catalog', 'web_path', 'component', 'component_name', 'status',
|
||||||
'cache', 'visible', 'parent', 'children', 'menu_button','menu_field', 'creator', 'dept_belong_id']
|
'cache', 'visible', 'parent', 'children', 'menu_button', 'menu_field', 'creator', 'dept_belong_id']
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'creator': {'write_only': True},
|
'creator': {'write_only': True},
|
||||||
'dept_belong_id': {'write_only': True}
|
'dept_belong_id': {'write_only': True}
|
||||||
|
|||||||
Reference in New Issue
Block a user