{{ for table in sorted(tables, key=lambda x:x['name']): }}

{{= table['label'] }} {{if table['appname']:}} {{= table['appname'] }} {{else:}}   {{pass}}

{{if table['desc']:}}
Description: {{<< table['desc']}}
{{pass}}
{{ for field in table['fields']: }} {{if field['reftable']:}} {{else:}} {{pass}} {{ pass }}
P Display Fieldname Data Type Can be Null Relation
{{if field['primary_key']:}} Y {{else:}}   {{pass}} {{= field['label']}} {{if field['star']:}} {{=field['star']}} {{pass}} {{if field['choices_name']:}} (参数名:{{=field['choices_name']}}) {{pass}} {{= field['name']}} {{= field['type']}} {{if field['nullable']:}}True {{else:}}   {{pass}} {{= field['reftable']}} 
{{ if table['indexes'] : }}
Indexes:
    {{ for index in table['indexes']: }}
  • {{=index}}
  • {{ pass }}
{{pass}} {{ if table['choices'] : }}
Comments:
    {{ for comment in table['choices']: }}
  • {{=comment['index']}}.{{=comment['fieldlabel']}}: {{ for v in comment['list']: }} ({{=repr(v[0])}},{{=v[1]}}) {{ pass }}
  • {{ pass }}
{{pass}}
{{ pass }}