django的models
class Department(models.Model):
serial_number = models.CharField(max_length=100,blank=True,null=True, verbose_name="序号")
name = models.CharField(max_length=100,blank=True,null=True, verbose_name="名称",unique=True)
name_0 = models.CharField(max_length=100,blank=True,null=True, default='河南营销2.0',verbose_name="名称_0")
name_1 = models.CharField(max_length=100,blank=True,null=True,default='',verbose_name="名称_1")
name_2 = models.CharField(max_length=100,blank=True,null=True,default='',verbose_name="名称_2")
name_3 = models.CharField(max_length=100,blank=True,null=True,default='',verbose_name="名称_3")
name_4 = models.CharField(max_length=100,blank=True,null=True,default='',verbose_name="名称_4")
name_5 = models.CharField(max_length=100,blank=True,null=True,default='',verbose_name="名称_5")
name_6 = models.CharField(max_length=100,blank=True,null=True,default='',verbose_name="名称_6")
name_7 = models.CharField(max_length=100,blank=True,null=True,default='',verbose_name="名称_7")
short_name = models.CharField(max_length=100,blank=True,null=True, verbose_name="简称")
content = models.CharField(max_length=1000,blank=True,null=True, verbose_name="职责")
remember = models.CharField(max_length=1000,blank=True,null=True, verbose_name="成员")
parent_name = models.CharField(max_length=100,blank=True,null=True, verbose_name="上级名称")
main_position_num = models.CharField(max_length=100,blank=True,null=True, verbose_name="正职职数")
deputy_position_num = models.CharField(max_length=100,blank=True,null=True, verbose_name="副职职数")
member_position_num = models.SmallIntegerField(default=0,blank=True,null=True, verbose_name="岗位职数")
file_company = models.CharField(max_length=100,blank=True,null=True, verbose_name="发文单位")
priority = models.CharField(max_length=20,blank=True,null=True,verbose_name='优先级')
remark = models.TextField(max_length=1000,blank=True,null=True,default="",verbose_name='备注')
djangoviews
import json
from django.shortcuts import render
from .. import models
def department_call_back(result_queryset,result_dict={'name':''}):
# 遍历对象集
for obj in result_queryset:
# children 为 y ,children中的列表位置为x
# p_0 = 0
# p_1 = 0
# p_2 = 0
# p_3 = 0
# p_4 = 0
# result_dict = {'name':'河南'}
if (len(obj.name_1)>0 and len(obj.name_2)>0) and 'children' not in list(result_dict.keys()):
result_dict['children'] = [{'name':obj.name_1}]
p_1 = 0
# result_dict = {'name':'河南营销','children':[{'name':name_1}]}
elif (len(obj.name_1)>0 and len(obj.name_2)>0) and 'children' in list(result_dict.keys()) and obj.name_1 not in [f['name'] for f in result_dict['children']]:
result_dict['children'].append({'name':obj.name_1})
p_1 = len(result_dict['children'])-1
elif len(obj.name_1)>0 and len(obj.name_2) == 0 and 'children' not in list(result_dict.keys()):
result_dict['children'] = [{'name':obj.name_1}]
p_1 = len(result_dict['children'])-1
continue
elif len(obj.name_1)>0 and len(obj.name_2) == 0 and 'children' in list(result_dict.keys()):
result_dict['children'].append({'name':obj.name_1})
p_1 = len(result_dict['children'])-1
continue
if (len(obj.name_2)>0 and len(obj.name_3)>0) and 'children' not in list(result_dict['children'][p_1].keys()):
result_dict['children'][p_1]['children'] = [{'name':obj.name_2}]
p_2 = 0
# result_dict = {'name':'河南营销','children':[{'name':name_1,'children':[{'name':'name_2'}]}]}
elif (len(obj.name_2)>0 and len(obj.name_3)>0) and 'children' in list(result_dict['children'][p_1].keys()) and obj.name_2 not in [f['name'] for f in result_dict['children'][p_1]['children']]:
result_dict['children'][p_1]['children'].append({'name':obj.name_2})
p_2 = len(result_dict['children'][p_1]['children'])-1
elif (len(obj.name_2)>0 and len(obj.name_3)==0) and 'children' not in list(result_dict['children'][p_1].keys()) :
result_dict['children'][p_1]['children'] = [{'name':obj.name_2}]
p_2 = len(result_dict['children'][p_1]['children'])-1
continue
elif (len(obj.name_2)>0 and len(obj.name_3)==0) and 'children' in list(result_dict['children'][p_1].keys()) :
result_dict['children'][p_1]['children'].append({'name':obj.name_2})
p_2 = len(result_dict['children'][p_1]['children'])-1
continue
if (len(obj.name_3)>0 and len(obj.name_4)>0) and 'children' not in list(result_dict['children'][p_1]['children'][p_2].keys()):
result_dict['children'][p_1]['children'][p_2]['children'] = [{'name':obj.name_3}]
p_3 = 0
# result_dict = {'name':'河南营销','children':[{'name':name_1,'children':[{'name':'name_2','children':[{'name':'name_3'}]}]}]}
elif (len(obj.name_3)>0 and len(obj.name_4)>0) and 'children' in list(result_dict['children'][p_1]['children'][p_2].keys()) and obj.name_3 not in [f['name'] for f in result_dict['children'][p_1]['children'][p_2]['children']]:
result_dict['children'][p_1]['children'][p_2]['children'].append({'name':obj.name_3})
p_3 = len(result_dict['children'][p_1]['children'][p_2]['children'])-1
elif (len(obj.name_3)>0 and len(obj.name_4)==0) and 'children' not in list(result_dict['children'][p_1]['children'][p_2].keys()):
result_dict['children'][p_1]['children'][p_2]['children'] = [{'name':obj.name_3}]
p_3 = len(result_dict['children'][p_1]['children'][p_2]['children'])-1
continue
elif (len(obj.name_3)>0 and len(obj.name_4)==0) and 'children' in list(result_dict['children'][p_1]['children'][p_2].keys()):
result_dict['children'][p_1]['children'][p_2]['children'].append({'name':obj.name_3})
p_3 = len(result_dict['children'][p_1]['children'][p_2]['children'])-1
continue
if (len(obj.name_4)>0 and len(obj.name_5)>0) and 'children' not in list(result_dict['children'][p_1]['children'][p_2]['children'][p_3].keys()):
result_dict['children'][p_1]['children'][p_2]['children'][p_3]['children'] = [{'name':obj.name_4}]
p_4 = 0
# result_dict = {'name':'河南营销','children':[{'name':name_1,'children':[{'name':'name_2','children':[{'name':'name_3','children':[{'name':'name_4'}}]}]}]}
elif (len(obj.name_4)>0 and len(obj.name_5)>0) and 'children' in list(result_dict['children'][p_1]['children'][p_2]['children'][p_3].keys()) and obj.name_4 not in [f['name'] for f in result_dict['children'][p_1]['children'][p_2]['children'][p_3]['children']]:
result_dict['children'][p_1]['children'][p_2]['children'][p_3]['children'].append({'name':obj.name_4})
p_4 = len(result_dict['children'][p_1]['children'][p_2]['children'][p_3]['children'])-1
elif (len(obj.name_4)>0 and len(obj.name_5)==0) and 'children' not in list(result_dict['children'][p_1]['children'][p_2]['children'][p_3].keys()) :
result_dict['children'][p_1]['children'][p_2]['children'][p_3]['children'] = [{'name':obj.name_4}]
p_4 = len(result_dict['children'][p_1]['children'][p_2]['children'][p_3]['children'])-1
elif (len(obj.name_4)>0 and len(obj.name_5)==0) and 'children' in list(result_dict['children'][p_1]['children'][p_2]['children'][p_3].keys()) :
result_dict['children'][p_1]['children'][p_2]['children'][p_3]['children'].append({'name':obj.name_4})
p_4 = len(result_dict['children'][p_1]['children'][p_2]['children'][p_3]['children'])-1
return result_dict
def department(request):
result_queryset = models.Department.objects.exclude(name__contains='离').order_by('name')[0:30]
result_dict_first={'name':'河南'}
name_i_first=0
result_dict = department_call_back(result_queryset,result_dict_first)
result_json = json.dumps(result_dict,ensure_ascii=False)
return render(request,'safeguard/echarts/department.html',locals())