Files
ZERO_CODE/ZeroCodeProject/dependency/classes/DynamicModelClass/__pycache__/DynamicModelClass.cpython-37.pyc

84 lines
8.4 KiB
Plaintext
Raw Normal View History

2026-01-11 00:11:34 +08:00
B
Ulf<>5<00>@s<>dZddlZddlZddlZddlmZddlmZddl m
Z
ddl m Z ddl Z ddlmZddlZddlZddlmZdd lmZmZe<11><17>Zej<19>ejd
d d <0C>Ze<18>e<19>Gd d<0E>d<0E>ZGdd<10>d<10>ZdS)ue
@project:serviceone
@File:DynamicModelClass.py
@IDE:PyCharm
@Author:徐彬程
@Date:2023/12/2 18:09
<EFBFBD>N)<01>abstractmethod)<01>models)<01> serializers)<01>timezone)<01>apps)<01>settings)<02>PythonCodeTreeNode<64>PythonCodeTreeController<65>
dependencyZjson_data_in_needz ZeroCode.confc@s<>eZdZdZgZedd<03><00>Zedd<05><00>Zedd<07><00>Zedd <09><00>Z ed
d <0B><00>Z
ed d <0A><00>Z edd<0F><00>Z eddd<12><01>Z edd<14><00>Zedd<16><00>Zedd<18><00>ZdS)<1B>BuildDynamicModelClassu
工厂模式
c s<>tjtjtjtjtjtjtjtjtj tj
tj tj d<01> }tj tjtjd<02>}dddgddddd<05>}i}t<11>|<01>}<06>x|D<00>]}||d}|ddkr<>dd g<02><00>fd
d <0B>|d <00><13>D<00>|d <qtx:|d <00><13>D]*\} }
t|
t<15>r<>|
|kr<>||
|d | <q<>Wxl|<04><13>D]`\} } | |d <00><16>k<06>r8| |d | k<02>r8|d | =n&| dk<02>r| |d <00><16>k<06>r|d | =<00>qW|f|d <00>||d <qtW|S)N) <0C> CharField<6C> IntegerField<6C> JSONField<6C>
ImageField<EFBFBD>IPAddressField<6C> TextField<6C> TimeField<6C>
ForeignKey<EFBFBD>ManyToManyField<6C> DateTimeField<6C>BigIntegerField<6C>
FloatField)zmodels.SET_NULLzmodels.CASCADEz timezone.now<6F>any<6E>False)Z
is_visibleZ is_editableZ form_typeZdata_show_fields<64>null<6C>blank<6E> primary_key<65>unique<75>
field_typer<00>to<74>throughcsi|]\}}|<01>kr||<01>qS<00>r!)<03>.0<EFBFBD>key<65>value)<01> keys_to_keepr!<00>zD:\ProjectMange\Django\Template_django_service_1712459605.683606\dependency\classes\DynamicModelClass\DynamicModelClass.py<70>
<dictcomp>]sz>BuildDynamicModelClass.model_atr_transform.<locals>.<dictcomp><3E>options<6E>name)rr r rrrrrrrrrr<00>SET_NULL<4C>CASCADEr<00>now<6F>copy<70>deepcopy<70>items<6D>
isinstance<EFBFBD>str<74>keys) <0A>cls<6C>data<74> FIELD_TYPESZOPTIONAL_FIELD_TYPESZIGNORE_OPTIONS_LIST<53> model_fieldsZnew_data<74>fZ field_klass<73>k<>vZignore_kZignore_vr!)r%r&<00>model_atr_transform8sT


  
$ z*BuildDynamicModelClass.model_atr_transformcCsX|<00>dd|id<03><02>}|<00>|d<00>}yt<02>d|<01>}Wn tk
rR|<00>||<03>}YnX|S)Nr<00>
model_name)<02> return_type<70>target_model_info<66>model_info_jsonr
)<06>get_model_infor:r<00> get_model<65> LookupError<6F> build_model)r3<00>
table_name<EFBFBD>fields<64> progress_data<74> now_modelr!r!r&r@ksz BuildDynamicModelClass.get_modelcCs@|<00>|<02>}yt<01>d|<01>}Wn tk
r:|<00>||<03>}YnX|S)Nr
)r:rr@rArB)r3rCr4rErFr!r!r&<00>get_model_by_data|s 
z(BuildDynamicModelClass.get_model_by_datacCst<00>dd|id<03><02>}|dS)Nrr;)r<r=<00>sign)r r?)r3rCrDr!r!r&<00>get_model_sign<67>sz%BuildDynamicModelClass.get_model_signcCst<00>dd|id<03><02>}|dS)Nrr;)r<r=r>)r r?)r3rCrDr!r!r&<00>get_model_field<6C>sz&BuildDynamicModelClass.get_model_fieldcCst<00>dd|id<03><02>}|dS)NrrH)r<r=r;)r r?)r3rHrDr!r!r&<00>get_model_name_by_sign<67>sz-BuildDynamicModelClass.get_model_name_by_signcCsLt<00>dd|id<03><02>}t<00>|d<00>}|<00>||d<00>}t<04>|d|d|i<01>}|S)Nrr;)r<r=r><00> _serializers<72>extend)r r?r:rG<00>BuildSerializers<72>build_serializers)r3rCrDrErF<00>serializers_buildr!r!r&<00>get_serializers<72>s

z&BuildDynamicModelClass.get_serializers<72>cs:|}G<00>fdd<02>d<02>}||d<||d<t<00>tjf|<04>}|S)NcseZdZdZ<03>ZdS)z0BuildDynamicModelClass.build_model.<locals>.Metar
N)<05>__name__<5F>
__module__<EFBFBD> __qualname__<5F> app_label<65>db_tabler!)rCr!r&<00>Meta<74>srXrT)<03>typer<00>Model)r3rCrD<00>module<6C>attrsrX<00> model_classr!)rCr&rB<00>s z"BuildDynamicModelClass.build_modelc CsHg|_t|j<00>dks|jStddd<04><02>}t<03>|<01>|_WdQRX|jSdS)Nrz&dependency/json_data_in_need/data.jsonzutf-8)<01>encoding)<05>ZeroCodeModelInfoData<74>len<65>open<65>json<6F>load)r3r4r!r!r&<00>get_zero_code_model_fields<64>s z1BuildDynamicModelClass.get_zero_code_model_fieldsc
Cs*|<00><00>}t|<02>dkr|<00><00>}|<00>t|<02>d<00>}yt<04>dt|<02>d<00>}Wn(tk
rn|<00>t|<02>d|<03>}YnX|d<00>ddi<01>t |dd k<02>s<>y"|j
j ft <0C> t <0C>|d<00><01><01>}Wn(|jk
r<EFBFBD>}ztd
<EFBFBD>Sd}~XYnXn|j
jft <0C> t <0C>|d<00><01><01>}t<12>d |i<00>}||t |dd k<02>d <0C>}|jS) Nr<00> table_fieldsr
rCr=Z model_status<75>r<<00>Trueu查找的表不存在Zzero_code_model)<01>many)rdr`r:<00>dictrr@rArB<00>update<74>bool<6F>objects<74>getrb<00>loads<64>dumps<70> DoesNotExistr1<00>filterrNrOr4) r3r4<00>resrErF<00>target<65>erPrr!r!r&r?<00>s$ "z%BuildDynamicModelClass.get_model_infoc Cs gid<01>}|<00>dddid<05><02>}t<01>|d<00>}yt<03>dd<04>}Wn tk
r\t<01>d|<05>}YnX|j<07><08>}t <09>
d|d |i<01>}||d
d <0B>} d}
d} d} <0C>x<>| j D<00>]<5D>} |d | d dk<02>r
| dik<02>s
| dd}|<00> | dd|<0E>} t<01>|<0E>}t <09>
| dd| d |i<01>}
|| d kr<>| diks<>d| d kr<>| dk <09>r<>|
dk <09>r<>y | jj | d d<13>}|
|<07>j } Wn | jk
<EFBFBD>r<>td<14>YnXt| <0A>} t<01>| dd<00>}yt<03>d| dd<00>}Wn*tk
<EFBFBD>r<>t<01>| dd|<0F>}YnX|d| d i}|jjf|<11>}t <09>
| ddd|d |i<01>}|d<00>d|i<01>|d<00>d|i<01>|d<00>ddd<1C>| ddD<00>i<01>q<>W| dk <09>r|<00>d<1D>jj | dd<1F>}|<00>d<1D>|<14>j }|<00>d <20>jj |d d<1F>}|<00>d <20>|<16>j }xD|d!D]8}x0|d"D]$}|d#|d$k<02>r<>|d%|d%<<00>q<>W<00>q<>W|<03>d&|d!i<01>|S)'N)<02>columns<6E>serializers_listrr;Zmiddle_index_table)r<r=r>r
Zmiddle_index_table_serializersrMT)rhrHZ
table_listrZmiddle_table_json_infoZmiddle_json_infoZ middle_name<6D>empty)Zmiddle_index_table_sign<67>{Z_signrLrvZmiddle_table_serializers<72>middle_now_modelrDcSs$g|]}|ddkr|ddi<01>qS)r)rHrRr!)r"<00>xr!r!r&<00>
<listcomp>/sz=BuildDynamicModelClass.get_table_relation.<locals>.<listcomp>Zrelation_columnsZrelation_columns_sign)rHZ frontend_show<6F> columns_infosZ
show_itemsr)<00>
field_name<EFBFBD>
additionalru)r?r r:rr@rArBrl<00>allrNrOr4rGrmrp<00>printrirqrjrQ)r3Z
table_signZ now_tableZ return_datarDrErFrsrPrZmiddle_serializerZ middle_modelZ column_data<74>itemZ middle_dataZmiddle_progress_dataryZ filter_dataZ middle_targetZmiddle_serializers_buildZrelation_columns_modelr|Zfrontend_show_modelZfrontend_show_infosrur~r!r!r&<00>get_table_relation<6F>s<>

 $ 
  
 
    z)BuildDynamicModelClass.get_table_relationN)rR)rSrTrU<00>__doc__r_<00> classmethodr:r@rGrIrJrKrQrBrdr?r<>r!r!r!r&r 2s 3 
 
r c@seZdZedd<02><00>ZdS)rNc Cszi}d|<03><00>krDx&|d<00><00>D]}|<04>|dgii<01>qW|d=|}n|}tdd|dd|d<07><04>}||d<t|tjf|<06>}|S)NrM<00>
validatorsrXr!<00>__all__rf)<04>modelrD<00>depth<74> extra_kwargs)r2rjrYr<00>ModelSerializer) r3rCrFr\r<>r<><00>attrZ
meta_classr]r!r!r&rOAs 
z"BuildSerializers.build_serializersN)rSrTrUr<>rOr!r!r!r&rN@srN)r<>r-<00>os.path<74>os<6F>re<72>abcr<00> django.dbr<00>rest_frameworkr<00> django.utilsrrb<00> django.appsr<00>requests<74> configparser<65> django.confrZ!dependency.classes.tree.treeClassrr <00> ConfigParser<65>cf<63>path<74>join<69>BASE_DIR<49>readr rNr!r!r!r&<00><module>s(