32 lines
983 B
Python
32 lines
983 B
Python
|
|
import json
|
||
|
|
|
||
|
|
from system.code_template.backend.mapping import component_to_db_type
|
||
|
|
from utils.ru_convert import RuleConvert
|
||
|
|
|
||
|
|
|
||
|
|
def generator_backend_model(model_info):
|
||
|
|
form_info = model_info.form_info
|
||
|
|
form_info_dict = json.loads(form_info)
|
||
|
|
header_txt = f'''from django.db import models
|
||
|
|
from utils.models import CoreModel
|
||
|
|
|
||
|
|
|
||
|
|
'''
|
||
|
|
columns_txt = ''
|
||
|
|
for item in form_info_dict.get('schemas'):
|
||
|
|
column = f'''
|
||
|
|
{item['field']} = models.{component_to_db_type[item['component']]}verbose_name='{item['label']}', help_text='{item['label']}')'''
|
||
|
|
columns_txt = column + columns_txt
|
||
|
|
|
||
|
|
bottom_txt = f'''class {RuleConvert.to_upper_camel_case(model_info.code)}(CoreModel):
|
||
|
|
{columns_txt}
|
||
|
|
|
||
|
|
class Meta:
|
||
|
|
db_table = 'generator_{model_info.code}'
|
||
|
|
verbose_name = '{model_info.name}'
|
||
|
|
verbose_name_plural = verbose_name
|
||
|
|
ordering = ('-create_datetime',)
|
||
|
|
'''
|
||
|
|
model_txt = header_txt + bottom_txt
|
||
|
|
return model_txt
|