#!/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)