2025-03-17 18:06:54 +08:00

63 lines
2.4 KiB
Python

#!/bin/python
#coding: utf-8
# +-------------------------------------------------------------------
# | version:1.0
# +-------------------------------------------------------------------
# | django-vue-lyadmin
# +-------------------------------------------------------------------
# | Author: lybbn
# +-------------------------------------------------------------------
# | QQ: 1042594286
# +-------------------------------------------------------------------
# ------------------------------
# 代码生成--viewset
# ------------------------------
from django.template import Template,Context
def lyGenerateViewSet(object):
#自定义导出
canExport = False
export_field_dict = {}
export_download_filename = "导出%s数据"%object['verbose_name']
column = object['column']
for c in column:
can_export = c.get('can_export',False)
field_name = c['field_name']
verbose_name = c['verbose_name']
field_type = c['field_type']
if can_export:
canExport = True
if field_type in ['ForeignKey','ManyToManyField','OneToOneField']:
gname = "%s_lyaudocode_name"%field_name
export_field_dict[gname] = verbose_name
else:
export_field_dict[field_name] = verbose_name
exportData = {
'canExport':canExport,
'export_field_dict':export_field_dict,
'export_download_filename':export_download_filename
}
viewset_code = """# -*- coding: utf-8 -*-
from utils.viewset import CustomModelViewSet
from apps.lyautocode.models.models_{{object.class_name}} import {{ object.class_name }}
from apps.lyautocode.serializers.serializer_{{object.class_name}} import {{ object.class_name}}Serializer
from apps.lyautocode.filters.filter_{{object.class_name}} import {{ object.class_name }}FilterSet
class {{ object.class_name }}ViewSet(CustomModelViewSet):
\"\"\"
{{ object.verbose_name }} 接口
\"\"\"
queryset = {{object.class_name}}.objects.all()
serializer_class = {{ object.class_name}}Serializer
filterset_class = {{ object.class_name }}FilterSet
{% if exportData.canExport %}
export_download_filename = "{{exportData.export_download_filename}}"
export_field_dict = {{exportData.export_field_dict|safe}}
{% endif %}
"""
context = Context({'object': object,'exportData':exportData})
return Template(viewset_code).render(context)