from tortoise import fields, models class Dictionary(models.Model): id = fields.UUIDField(pk=True) archive = fields.ForeignKeyField('rms.Archive', to_field='id', description='药剂大类ID') k1 = fields.CharField(null=True, max_length=255, description='关键字段1') k2 = fields.CharField(null=True, max_length=255, description='关键字段2') k3 = fields.CharField(null=True, max_length=255, description='关键字段3') k4 = fields.CharField(null=True, max_length=255, description='关键字段4') k5 = fields.CharField(null=True, max_length=255, description='关键字段5') k6 = fields.CharField(null=True, max_length=255, description='关键字段6') storage_count = fields.IntField(default=0, description='库存量') use_count = fields.IntField(default=0, description='使用次数') params = fields.JSONField(null=True, description='默认参数') created_at = fields.DatetimeField(auto_now_add=True) updated_at = fields.DatetimeField(auto_now=True) class Meta: table = 'dictionaries' table_description = '药剂字典表' async def attribute_dictionary_info(self, template): """k1-k6键值""" xlsx = list(filter(lambda i: i.get("checked"), template.xlsx)) xlsx_transfer = {f"{item['key']}": f"{item['text']}" for item in xlsx} dictionary_info = {xlsx_transfer.get(f"k{i}"): getattr(self, f"k{i}") for i in range(1, 7) if xlsx_transfer.get(f"k{i}") and hasattr(self, f"k{i}")} return dictionary_info