新增:完全代码创建word表格,设置宽度、字体
This commit is contained in:
Binary file not shown.
@@ -1,13 +1,19 @@
|
||||
import base64
|
||||
import io
|
||||
from typing import Any
|
||||
from datetime import datetime
|
||||
from docx.shared import Mm
|
||||
from docx.enum.text import WD_ALIGN_PARAGRAPH
|
||||
from docx.oxml.ns import qn
|
||||
from ninja.errors import HttpError
|
||||
from ninja_extra import ControllerBase, api_controller, route
|
||||
from django.db import transaction
|
||||
from django.db.models import Q
|
||||
from docxtpl import DocxTemplate
|
||||
from docxtpl import DocxTemplate, InlineImage
|
||||
from pathlib import Path
|
||||
from utils.chen_response import ChenResponse
|
||||
# 导入数据库ORM
|
||||
from apps.project.models import Project, Contact, Abbreviation
|
||||
from apps.project.models import Project, Contact, Abbreviation, ProjectSoftSummary
|
||||
from apps.dict.models import Dict
|
||||
# 导入工具函数
|
||||
from utils.util import get_str_dict, get_list_dict, get_testType, get_ident, get_str_abbr
|
||||
@@ -23,7 +29,7 @@ from apps.createSeiTaiDocument.extensions.logger import GenerateLogger
|
||||
# 导入mixins-处理文档片段
|
||||
from apps.createDocument.extensions.mixins import FragementToolsMixin
|
||||
# 导入工具
|
||||
from apps.createDocument.extensions.tools import demand_sort_by_designKey
|
||||
from apps.createDocument.extensions.tools import demand_sort_by_designKey, set_table_border
|
||||
|
||||
# @api_controller("/generate", tags=['生成大纲文档'], auth=JWTAuth(), permissions=[IsAuthenticated])
|
||||
@api_controller("/generate", tags=['生成大纲文档'])
|
||||
@@ -286,6 +292,62 @@ class GenerateControllerDG(ControllerBase, FragementToolsMixin):
|
||||
@route.get('/create/softComposition', url_name='create-softComposition')
|
||||
@transaction.atomic
|
||||
def create_softComposition(self, id: int):
|
||||
# 首先判断是否包含 - 项目信息-软件概述
|
||||
project_obj = get_object_or_404(Project, id=id)
|
||||
input_path_2 = Path.cwd() / 'media' / project_path(id) / 'form_template' / 'dg' / '测评对象_2.docx'
|
||||
doc = DocxTemplate(input_path_2)
|
||||
soft_summary_qs = ProjectSoftSummary.objects.filter(project=project_obj)
|
||||
if soft_summary_qs.exists():
|
||||
data_qs = soft_summary_qs.first().data_schemas
|
||||
if data_qs.exists():
|
||||
# 如果存在则渲染此处
|
||||
data_list = []
|
||||
for data_obj in data_qs.all():
|
||||
item_context: dict[str, Any] = {"fontnote": data_obj.fontnote, 'type': data_obj.type}
|
||||
# 根据数据类型处理content字段
|
||||
if data_obj.type == 'text':
|
||||
item_context['content'] = data_obj.content
|
||||
elif data_obj.type == 'table':
|
||||
# 使用subdoc
|
||||
subdoc = doc.new_subdoc()
|
||||
rows = len(data_obj.content)
|
||||
cols = len(data_obj.content[0])
|
||||
table = subdoc.add_table(rows=rows, cols=cols, style='Table Grid')
|
||||
# 设置边框
|
||||
set_table_border(table)
|
||||
# 单元格处理
|
||||
for row in range(rows):
|
||||
for col in range(cols):
|
||||
cell = table.cell(row, col)
|
||||
cell.text = data_obj.content[row][col]
|
||||
# 第一行设置居中
|
||||
if row == 0:
|
||||
# 黑体设置
|
||||
cell.text = ""
|
||||
pa = cell.paragraphs[0]
|
||||
run = pa.add_run(str(data_obj.content[row][col]))
|
||||
run.font.name = '黑体'
|
||||
run._element.rPr.rFonts.set(qn('w:eastAsia'), '黑体')
|
||||
run.font.bold = False
|
||||
pa.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
||||
# 表格居中
|
||||
table.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
||||
item_context['content'] = subdoc
|
||||
elif data_obj.type == 'image':
|
||||
base64_bytes = base64.b64decode(data_obj.content.replace("data:image/png;base64,", ""))
|
||||
item_context['content'] = InlineImage(doc, io.BytesIO(base64_bytes), width=Mm(120))
|
||||
data_list.append(item_context)
|
||||
context = {
|
||||
"datas": data_list,
|
||||
}
|
||||
doc.render(context)
|
||||
try:
|
||||
doc.save(Path.cwd() / "media" / project_path(id) / "output_dir" / '测评对象.docx')
|
||||
return ChenResponse(status=200, code=200, message="文档生成成功!")
|
||||
except PermissionError as e:
|
||||
return ChenResponse(status=400, code=400, message="模版文件已打开,请关闭后再试,{0}".format(e))
|
||||
|
||||
# 原来文档片段或者初始内容
|
||||
input_path = Path.cwd() / 'media' / project_path(id) / 'form_template' / 'dg' / '测评对象.docx'
|
||||
doc = DocxTemplate(input_path)
|
||||
replace, frag, rich_text_list = self._generate_frag(id, doc, '测评对象')
|
||||
|
||||
Binary file not shown.
@@ -1,4 +1,6 @@
|
||||
from apps.project.models import TestDemand
|
||||
from docx.oxml import OxmlElement
|
||||
from docx.oxml.ns import qn
|
||||
|
||||
def demand_sort_by_designKey(demand_obj: TestDemand) -> tuple[int, ...]:
|
||||
"""仅限于测试项排序函数,传入sorted函数的key里面"""
|
||||
@@ -6,4 +8,32 @@ def demand_sort_by_designKey(demand_obj: TestDemand) -> tuple[int, ...]:
|
||||
sort_tuple = tuple(int(part) for part in parts)
|
||||
return sort_tuple
|
||||
|
||||
__all__ = ['demand_sort_by_designKey']
|
||||
def set_table_border(table, **kwargs):
|
||||
"""docx-设置表格上下左右边框"""
|
||||
# 获取或创建表格属性
|
||||
tbl_pr = table._tbl.tblPr
|
||||
|
||||
# 查找并移除现有的边框设置
|
||||
existing_borders = tbl_pr.find(qn('w:tblBorders'))
|
||||
if existing_borders is not None:
|
||||
tbl_pr.remove(existing_borders)
|
||||
|
||||
# 创建新的边框元素
|
||||
borders = OxmlElement('w:tblBorders')
|
||||
|
||||
# 只设置外边框:top, left, bottom, right
|
||||
# 不设置 insideV 和 insideH(内部边框)
|
||||
for border_type in ['top', 'left', 'bottom', 'right']:
|
||||
border_data = kwargs.get(border_type, {"sz": "12", "val": "single", "color": "#000000"})
|
||||
border_elem = OxmlElement(f'w:{border_type}')
|
||||
|
||||
# 设置边框属性
|
||||
border_elem.set(qn('w:val'), border_data.get('val', 'single')) # 线条类型
|
||||
border_elem.set(qn('w:sz'), border_data.get('sz', '12')) # 线条粗细(8代表1磅)
|
||||
border_elem.set(qn('w:color'), border_data.get('color', '#000000')) # 颜色
|
||||
borders.append(border_elem) # type:ignore
|
||||
|
||||
# 将边框设置添加到表格属性中
|
||||
tbl_pr.append(borders)
|
||||
|
||||
__all__ = ['demand_sort_by_designKey', 'set_table_border']
|
||||
|
||||
Binary file not shown.
@@ -271,6 +271,21 @@ class ProjectController(ControllerBase):
|
||||
return time
|
||||
|
||||
# 项目级信息前端告警数据获取
|
||||
@route.get("/project_info_status/")
|
||||
@transaction.atomic
|
||||
def project_info_status(self, id: int):
|
||||
# 全部状态
|
||||
all_status = {
|
||||
"soft_summary": False
|
||||
}
|
||||
# 1.查看软件概述是否填写
|
||||
project_obj = self.get_project_by_id(id)
|
||||
soft_summary_qs = ProjectSoftSummary.objects.filter(project=project_obj)
|
||||
if soft_summary_qs.exists():
|
||||
# 存在还要判断是否有子项
|
||||
if soft_summary_qs.first().data_schemas.exists():
|
||||
all_status['soft_summary'] = True
|
||||
return ChenResponse(status=200, code=20000, data=all_status, message='查询成功')
|
||||
|
||||
@classmethod
|
||||
def bulk_create_data_schemas(cls, summary_obj: ProjectSoftSummary, data: list[DataSchema]):
|
||||
|
||||
BIN
conf/base_document/form_template/dg/测评对象_2.docx
Normal file
BIN
conf/base_document/form_template/dg/测评对象_2.docx
Normal file
Binary file not shown.
490
logs/root_log
490
logs/root_log
@@ -2758,3 +2758,493 @@ Traceback (most recent call last):
|
||||
f'is not JSON serializable')
|
||||
TypeError: Object of type StuctSortData is not JSON serializable
|
||||
[ERROR][2026-02-02 16:30:12,684][log.py:249]Internal Server Error: /api/testmanage/project/get_soft_summary/
|
||||
[WARNING][2026-02-03 09:38:03,966][log.py:249]Unauthorized: /api/system/getInfo
|
||||
[WARNING][2026-02-03 09:38:04,044][log.py:249]Unauthorized: /api/system/logout
|
||||
[WARNING][2026-02-03 09:38:09,074][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||
[WARNING][2026-02-03 10:37:41,293][log.py:249]Not Found: /api/testmanage/project/project_info_status/
|
||||
[WARNING][2026-02-03 10:37:48,403][log.py:249]Not Found: /api/testmanage/project/project_info_status/
|
||||
[WARNING][2026-02-03 10:38:19,591][log.py:249]Not Found: /api/testmanage/project/project_info_status/
|
||||
[WARNING][2026-02-03 10:38:23,503][log.py:249]Not Found: /api/testmanage/project/project_info_status/
|
||||
[WARNING][2026-02-03 10:38:26,111][log.py:249]Not Found: /api/testmanage/project/project_info_status/
|
||||
[WARNING][2026-02-03 13:54:28,018][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" (2, 'No such file or directory')
|
||||
[ERROR][2026-02-03 13:54:28,018][errors.py:131][Errno 2] No such file or directory: 'E:\\pycharmProjects\\cdtestplant_v1\\media\\R25999\\form_template\\dg\\测评对象_2.docx'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 316, in create_softComposition
|
||||
doc.render(context, autoescape=True)
|
||||
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 480, in render
|
||||
self.render_init()
|
||||
~~~~~~~~~~~~~~~~^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 60, in render_init
|
||||
self.init_docx()
|
||||
~~~~~~~~~~~~~~^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 56, in init_docx
|
||||
self.docx = Document(self.template_file)
|
||||
~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\api.py", line 27, in Document
|
||||
document_part = cast("DocumentPart", Package.open(docx).main_document_part)
|
||||
~~~~~~~~~~~~^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\opc\package.py", line 126, in open
|
||||
pkg_reader = PackageReader.from_file(pkg_file)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\opc\pkgreader.py", line 22, in from_file
|
||||
phys_reader = PhysPkgReader(pkg_file)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\opc\phys_pkg.py", line 76, in __init__
|
||||
self._zipf = ZipFile(pkg_file, "r")
|
||||
~~~~~~~^^^^^^^^^^^^^^^
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\zipfile\__init__.py", line 1383, in __init__
|
||||
self.fp = io.open(file, filemode)
|
||||
~~~~~~~^^^^^^^^^^^^^^^^
|
||||
FileNotFoundError: [Errno 2] No such file or directory: 'E:\\pycharmProjects\\cdtestplant_v1\\media\\R25999\\form_template\\dg\\测评对象_2.docx'
|
||||
[ERROR][2026-02-03 13:54:28,061][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 14:26:54,530][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("Encountered unknown tag 'endfor'.",)
|
||||
[ERROR][2026-02-03 14:26:54,532][errors.py:131]Encountered unknown tag 'endfor'.
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 315, in create_softComposition
|
||||
doc.render(context)
|
||||
~~~~~~~~~~^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 489, in render
|
||||
xml_src = self.build_xml(context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 436, in build_xml
|
||||
xml = self.render_xml_part(xml, self.docx._part, context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 322, in render_xml_part
|
||||
raise exc
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 312, in render_xml_part
|
||||
template = Template(src_xml)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1214, in __new__
|
||||
return env.from_string(source, template_class=cls)
|
||||
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1111, in from_string
|
||||
return cls.from_code(self, self.compile(source), gs, None)
|
||||
~~~~~~~~~~~~^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 771, in compile
|
||||
self.handle_exception(source=source_hint)
|
||||
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "<unknown>", line 7, in template
|
||||
jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'endfor'.
|
||||
[ERROR][2026-02-03 14:26:54,580][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 14:27:08,046][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("Encountered unknown tag 'endfor'.",)
|
||||
[ERROR][2026-02-03 14:27:08,046][errors.py:131]Encountered unknown tag 'endfor'.
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 315, in create_softComposition
|
||||
doc.render(context)
|
||||
~~~~~~~~~~^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 489, in render
|
||||
xml_src = self.build_xml(context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 436, in build_xml
|
||||
xml = self.render_xml_part(xml, self.docx._part, context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 322, in render_xml_part
|
||||
raise exc
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 312, in render_xml_part
|
||||
template = Template(src_xml)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1214, in __new__
|
||||
return env.from_string(source, template_class=cls)
|
||||
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1111, in from_string
|
||||
return cls.from_code(self, self.compile(source), gs, None)
|
||||
~~~~~~~~~~~~^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 771, in compile
|
||||
self.handle_exception(source=source_hint)
|
||||
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "<unknown>", line 7, in template
|
||||
jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'endfor'.
|
||||
[ERROR][2026-02-03 14:27:08,053][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 14:27:29,619][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("Encountered unknown tag 'endfor'.",)
|
||||
[ERROR][2026-02-03 14:27:29,619][errors.py:131]Encountered unknown tag 'endfor'.
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 315, in create_softComposition
|
||||
doc.render(context)
|
||||
~~~~~~~~~~^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 489, in render
|
||||
xml_src = self.build_xml(context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 436, in build_xml
|
||||
xml = self.render_xml_part(xml, self.docx._part, context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 322, in render_xml_part
|
||||
raise exc
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 312, in render_xml_part
|
||||
template = Template(src_xml)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1214, in __new__
|
||||
return env.from_string(source, template_class=cls)
|
||||
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1111, in from_string
|
||||
return cls.from_code(self, self.compile(source), gs, None)
|
||||
~~~~~~~~~~~~^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 771, in compile
|
||||
self.handle_exception(source=source_hint)
|
||||
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "<unknown>", line 7, in template
|
||||
jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'endfor'.
|
||||
[ERROR][2026-02-03 14:27:29,634][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 14:27:42,348][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("Encountered unknown tag 'endfor'.",)
|
||||
[ERROR][2026-02-03 14:27:42,349][errors.py:131]Encountered unknown tag 'endfor'.
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 315, in create_softComposition
|
||||
doc.render(context)
|
||||
~~~~~~~~~~^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 489, in render
|
||||
xml_src = self.build_xml(context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 436, in build_xml
|
||||
xml = self.render_xml_part(xml, self.docx._part, context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 322, in render_xml_part
|
||||
raise exc
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 312, in render_xml_part
|
||||
template = Template(src_xml)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1214, in __new__
|
||||
return env.from_string(source, template_class=cls)
|
||||
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1111, in from_string
|
||||
return cls.from_code(self, self.compile(source), gs, None)
|
||||
~~~~~~~~~~~~^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 771, in compile
|
||||
self.handle_exception(source=source_hint)
|
||||
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "<unknown>", line 7, in template
|
||||
jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'endfor'.
|
||||
[ERROR][2026-02-03 14:27:42,368][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 14:28:06,158][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("Encountered unknown tag 'endfor'.",)
|
||||
[ERROR][2026-02-03 14:28:06,159][errors.py:131]Encountered unknown tag 'endfor'.
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 315, in create_softComposition
|
||||
doc.render(context)
|
||||
~~~~~~~~~~^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 489, in render
|
||||
xml_src = self.build_xml(context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 436, in build_xml
|
||||
xml = self.render_xml_part(xml, self.docx._part, context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 322, in render_xml_part
|
||||
raise exc
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 312, in render_xml_part
|
||||
template = Template(src_xml)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1214, in __new__
|
||||
return env.from_string(source, template_class=cls)
|
||||
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1111, in from_string
|
||||
return cls.from_code(self, self.compile(source), gs, None)
|
||||
~~~~~~~~~~~~^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 771, in compile
|
||||
self.handle_exception(source=source_hint)
|
||||
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "<unknown>", line 7, in template
|
||||
jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'endfor'.
|
||||
[ERROR][2026-02-03 14:28:06,177][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 14:28:12,615][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("Encountered unknown tag 'endfor'.",)
|
||||
[ERROR][2026-02-03 14:28:12,615][errors.py:131]Encountered unknown tag 'endfor'.
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 315, in create_softComposition
|
||||
doc.render(context)
|
||||
~~~~~~~~~~^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 489, in render
|
||||
xml_src = self.build_xml(context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 436, in build_xml
|
||||
xml = self.render_xml_part(xml, self.docx._part, context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 322, in render_xml_part
|
||||
raise exc
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 312, in render_xml_part
|
||||
template = Template(src_xml)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1214, in __new__
|
||||
return env.from_string(source, template_class=cls)
|
||||
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1111, in from_string
|
||||
return cls.from_code(self, self.compile(source), gs, None)
|
||||
~~~~~~~~~~~~^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 771, in compile
|
||||
self.handle_exception(source=source_hint)
|
||||
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "<unknown>", line 7, in template
|
||||
jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'endfor'.
|
||||
[ERROR][2026-02-03 14:28:12,636][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 14:36:12,071][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("Encountered unknown tag 'tr'. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.",)
|
||||
[ERROR][2026-02-03 14:36:12,071][errors.py:131]Encountered unknown tag 'tr'. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 315, in create_softComposition
|
||||
doc.render(context)
|
||||
~~~~~~~~~~^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 489, in render
|
||||
xml_src = self.build_xml(context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 436, in build_xml
|
||||
xml = self.render_xml_part(xml, self.docx._part, context, jinja_env)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 322, in render_xml_part
|
||||
raise exc
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 312, in render_xml_part
|
||||
template = Template(src_xml)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1214, in __new__
|
||||
return env.from_string(source, template_class=cls)
|
||||
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 1111, in from_string
|
||||
return cls.from_code(self, self.compile(source), gs, None)
|
||||
~~~~~~~~~~~~^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 771, in compile
|
||||
self.handle_exception(source=source_hint)
|
||||
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception
|
||||
raise rewrite_traceback_stack(source=source)
|
||||
File "<unknown>", line 4, in template
|
||||
jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'tr'. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.
|
||||
[ERROR][2026-02-03 14:36:12,117][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 15:01:08,760][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("No module named 'docxcompose'",)
|
||||
[ERROR][2026-02-03 15:01:08,761][errors.py:131]No module named 'docxcompose'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 308, in create_softComposition
|
||||
subdoc = doc.new_subdoc()
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\template.py", line 617, in new_subdoc
|
||||
from .subdoc import Subdoc
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docxtpl\subdoc.py", line 11, in <module>
|
||||
from docxcompose.properties import CustomProperties
|
||||
ModuleNotFoundError: No module named 'docxcompose'
|
||||
[ERROR][2026-02-03 15:01:08,764][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 15:15:47,401][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("no style with name 'outertable'",)
|
||||
[ERROR][2026-02-03 15:15:47,401][errors.py:131]"no style with name 'outertable'"
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 314, in create_softComposition
|
||||
table = subdoc.add_table(rows=rows, cols=cols, style='outertable')
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\document.py", line 157, in add_table
|
||||
table.style = style
|
||||
^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\table.py", line 137, in style
|
||||
style_id = self.part.get_style_id(style_or_name, WD_STYLE_TYPE.TABLE)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\parts\document.py", line 87, in get_style_id
|
||||
return self.styles.get_style_id(style_or_name, style_type)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\styles\styles.py", line 98, in get_style_id
|
||||
return self._get_style_id_from_name(style_or_name, style_type)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\styles\styles.py", line 125, in _get_style_id_from_name
|
||||
return self._get_style_id_from_style(self[style_name], style_type)
|
||||
~~~~^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\styles\styles.py", line 47, in __getitem__
|
||||
raise KeyError("no style with name '%s'" % key)
|
||||
KeyError: "no style with name 'outertable'"
|
||||
[ERROR][2026-02-03 15:15:47,430][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 15:32:08,488][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("Table.cell() got an unexpected keyword argument 'row'",)
|
||||
[ERROR][2026-02-03 15:32:08,488][errors.py:131]Table.cell() got an unexpected keyword argument 'row'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 319, in create_softComposition
|
||||
cell = table.cell(row=row, column=col)
|
||||
TypeError: Table.cell() got an unexpected keyword argument 'row'
|
||||
[ERROR][2026-02-03 15:32:08,493][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 15:55:25,723][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("int() argument must be a string, a bytes-like object or a real number, not 'NoneType'",)
|
||||
[ERROR][2026-02-03 15:55:25,723][errors.py:131]int() argument must be a string, a bytes-like object or a real number, not 'NoneType'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 327, in create_softComposition
|
||||
cell.width = None
|
||||
^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\table.py", line 311, in width
|
||||
self._tc.width = value
|
||||
^^^^^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\oxml\table.py", line 565, in width
|
||||
tcPr.width = value
|
||||
^^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\oxml\table.py", line 889, in width
|
||||
tcW.width = value
|
||||
^^^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\oxml\table.py", line 418, in width
|
||||
self.w = Emu(value).twips
|
||||
~~~^^^^^^^
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\docx\shared.py", line 94, in __new__
|
||||
return Length.__new__(cls, int(emu))
|
||||
~~~^^^^^
|
||||
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType'
|
||||
[ERROR][2026-02-03 15:55:25,751][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 16:01:04,826][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("'Table' object has no attribute 'allow_autofit'",)
|
||||
[ERROR][2026-02-03 16:01:04,826][errors.py:131]'Table' object has no attribute 'allow_autofit'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 327, in create_softComposition
|
||||
print(table.allow_autofit)
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
AttributeError: 'Table' object has no attribute 'allow_autofit'
|
||||
[ERROR][2026-02-03 16:01:04,871][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 16:08:40,814][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("'_Cell' object has no attribute 'font'",)
|
||||
[ERROR][2026-02-03 16:08:40,815][errors.py:131]'_Cell' object has no attribute 'font'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 325, in create_softComposition
|
||||
cell.font.bold = True
|
||||
^^^^^^^^^
|
||||
AttributeError: '_Cell' object has no attribute 'font'
|
||||
[ERROR][2026-02-03 16:08:40,818][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 16:10:37,247][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("'_Cell' object has no attribute 'font'",)
|
||||
[ERROR][2026-02-03 16:10:37,248][errors.py:131]'_Cell' object has no attribute 'font'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 325, in create_softComposition
|
||||
cell.font.bold = True
|
||||
^^^^^^^^^
|
||||
AttributeError: '_Cell' object has no attribute 'font'
|
||||
[ERROR][2026-02-03 16:10:37,250][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 16:10:57,505][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("'_Cell' object has no attribute 'font'",)
|
||||
[ERROR][2026-02-03 16:10:57,505][errors.py:131]'_Cell' object has no attribute 'font'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 325, in create_softComposition
|
||||
cell.font.bold = True
|
||||
^^^^^^^^^
|
||||
AttributeError: '_Cell' object has no attribute 'font'
|
||||
[ERROR][2026-02-03 16:10:57,509][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 16:12:30,953][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("'_Cell' object has no attribute 'font'",)
|
||||
[ERROR][2026-02-03 16:12:30,954][errors.py:131]'_Cell' object has no attribute 'font'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 325, in create_softComposition
|
||||
cell.font.bold = True
|
||||
^^^^^^^^^
|
||||
AttributeError: '_Cell' object has no attribute 'font'
|
||||
[ERROR][2026-02-03 16:12:30,959][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
[WARNING][2026-02-03 16:18:12,617][operation.py:131]"GET - GenerateControllerDG[create_softComposition] /api/generate/create/softComposition" ("'_Cell' object has no attribute 'font'",)
|
||||
[ERROR][2026-02-03 16:18:12,618][errors.py:131]'_Cell' object has no attribute 'font'
|
||||
Traceback (most recent call last):
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 212, in run
|
||||
result = self.view_func(request, **ctx.kwargs["view_func_kwargs"])
|
||||
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\controllers\route\route_functions.py", line 108, in as_view
|
||||
result = self.route.view_func(
|
||||
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||
)
|
||||
File "D:\programs\uv\python\cpython-3.13.11-windows-x86_64-none\Lib\contextlib.py", line 85, in inner
|
||||
return func(*args, **kwds)
|
||||
File "E:\pycharmProjects\cdtestplant_v1\apps\createDocument\controllers\dg.py", line 325, in create_softComposition
|
||||
cell.font.bold = True
|
||||
^^^^^^^^^
|
||||
AttributeError: '_Cell' object has no attribute 'font'
|
||||
[ERROR][2026-02-03 16:18:12,624][log.py:249]Internal Server Error: /api/generate/create/softComposition
|
||||
|
||||
BIN
media/R2237/form_template/dg/测评对象_2.docx
Normal file
BIN
media/R2237/form_template/dg/测评对象_2.docx
Normal file
Binary file not shown.
BIN
media/R25138/form_template/dg/测评对象_2.docx
Normal file
BIN
media/R25138/form_template/dg/测评对象_2.docx
Normal file
Binary file not shown.
Binary file not shown.
BIN
media/R25999/form_template/dg/测评对象_2.docx
Normal file
BIN
media/R25999/form_template/dg/测评对象_2.docx
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -15,6 +15,7 @@ dependencies = [
|
||||
"django-redis>=6.0.0",
|
||||
"django-shortuuidfield>=0.1.3",
|
||||
"django-tinymce>=5.0.0",
|
||||
"docxcompose",
|
||||
"docxtpl>=0.20.2",
|
||||
"faker==40.1.2",
|
||||
"ipykernel>=7.1.0",
|
||||
|
||||
107
uv.lock
generated
107
uv.lock
generated
@@ -46,6 +46,15 @@ wheels = [
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "babel"
|
||||
version = "2.18.0"
|
||||
source = { registry = "https://mirrors.aliyun.com/pypi/simple" }
|
||||
sdist = { url = "https://mirrors.aliyun.com/pypi/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d" }
|
||||
wheels = [
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "beautifulsoup4"
|
||||
version = "4.14.3"
|
||||
@@ -74,6 +83,7 @@ dependencies = [
|
||||
{ name = "django-redis" },
|
||||
{ name = "django-shortuuidfield" },
|
||||
{ name = "django-tinymce" },
|
||||
{ name = "docxcompose" },
|
||||
{ name = "docxtpl" },
|
||||
{ name = "faker" },
|
||||
{ name = "ipykernel" },
|
||||
@@ -101,6 +111,7 @@ requires-dist = [
|
||||
{ name = "django-redis", specifier = ">=6.0.0" },
|
||||
{ name = "django-shortuuidfield", specifier = ">=0.1.3" },
|
||||
{ name = "django-tinymce", specifier = ">=5.0.0" },
|
||||
{ name = "docxcompose" },
|
||||
{ name = "docxtpl", specifier = ">=0.20.2" },
|
||||
{ name = "faker", specifier = "==40.1.2" },
|
||||
{ name = "ipykernel", specifier = ">=7.1.0" },
|
||||
@@ -392,6 +403,19 @@ wheels = [
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "docxcompose"
|
||||
version = "1.4.0"
|
||||
source = { registry = "https://mirrors.aliyun.com/pypi/simple" }
|
||||
dependencies = [
|
||||
{ name = "babel" },
|
||||
{ name = "lxml" },
|
||||
{ name = "python-docx" },
|
||||
{ name = "setuptools" },
|
||||
{ name = "six" },
|
||||
]
|
||||
sdist = { url = "https://mirrors.aliyun.com/pypi/packages/5d/25/07597a0fda04adf2f2fc375f48f704612a91c0c1da64f4c18e78a4a26630/docxcompose-1.4.0.tar.gz", hash = "sha256:bcf2799a0b63c29eb77a3d799a2f28443ae0f69f8691ff3d753f706be515c3e9" }
|
||||
|
||||
[[package]]
|
||||
name = "docxtpl"
|
||||
version = "0.20.2"
|
||||
@@ -484,7 +508,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "ipython"
|
||||
version = "9.9.0"
|
||||
version = "9.10.0"
|
||||
source = { registry = "https://mirrors.aliyun.com/pypi/simple" }
|
||||
dependencies = [
|
||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
||||
@@ -498,9 +522,9 @@ dependencies = [
|
||||
{ name = "stack-data" },
|
||||
{ name = "traitlets" },
|
||||
]
|
||||
sdist = { url = "https://mirrors.aliyun.com/pypi/packages/46/dd/fb08d22ec0c27e73c8bc8f71810709870d51cadaf27b7ddd3f011236c100/ipython-9.9.0.tar.gz", hash = "sha256:48fbed1b2de5e2c7177eefa144aba7fcb82dac514f09b57e2ac9da34ddb54220" }
|
||||
sdist = { url = "https://mirrors.aliyun.com/pypi/packages/a6/60/2111715ea11f39b1535bed6024b7dec7918b71e5e5d30855a5b503056b50/ipython-9.10.0.tar.gz", hash = "sha256:cd9e656be97618a0676d058134cd44e6dc7012c0e5cb36a9ce96a8c904adaf77" }
|
||||
wheels = [
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/86/92/162cfaee4ccf370465c5af1ce36a9eacec1becb552f2033bb3584e6f640a/ipython-9.9.0-py3-none-any.whl", hash = "sha256:b457fe9165df2b84e8ec909a97abcf2ed88f565970efba16b1f7229c283d252b" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/3d/aa/898dec789a05731cd5a9f50605b7b44a72bd198fd0d4528e11fc610177cc/ipython-9.10.0-py3-none-any.whl", hash = "sha256:c6ab68cc23bba8c7e18e9b932797014cc61ea7fd6f19de180ab9ba73e65ee58d" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -790,40 +814,40 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "orjson"
|
||||
version = "3.11.6"
|
||||
version = "3.11.7"
|
||||
source = { registry = "https://mirrors.aliyun.com/pypi/simple" }
|
||||
sdist = { url = "https://mirrors.aliyun.com/pypi/packages/70/a3/4e09c61a5f0c521cba0bb433639610ae037437669f1a4cbc93799e731d78/orjson-3.11.6.tar.gz", hash = "sha256:0a54c72259f35299fd033042367df781c2f66d10252955ca1efb7db309b954cb" }
|
||||
sdist = { url = "https://mirrors.aliyun.com/pypi/packages/53/45/b268004f745ede84e5798b48ee12b05129d19235d0e15267aa57dcdb400b/orjson-3.11.7.tar.gz", hash = "sha256:9b1a67243945819ce55d24a30b59d6a168e86220452d2c96f4d1f093e71c0c49" }
|
||||
wheels = [
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/ae/45/d9c71c8c321277bc1ceebf599bc55ba826ae538b7c61f287e9a7e71bd589/orjson-3.11.6-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e4ae1670caabb598a88d385798692ce2a1b2f078971b3329cfb85253c6097f5b" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/ac/7e/4afcf4cfa9c2f93846d70eee9c53c3c0123286edcbeb530b7e9bd2aea1b2/orjson-3.11.6-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:2c6b81f47b13dac2caa5d20fbc953c75eb802543abf48403a4703ed3bff225f0" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/40/10/6d2b8a064c8d2411d3d0ea6ab43125fae70152aef6bea77bb50fa54d4097/orjson-3.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:647d6d034e463764e86670644bdcaf8e68b076e6e74783383b01085ae9ab334f" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/5a/50/5804ea7d586baf83ee88969eefda97a24f9a5bdba0727f73e16305175b26/orjson-3.11.6-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8523b9cc4ef174ae52414f7699e95ee657c16aa18b3c3c285d48d7966cce9081" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/9e/2e/f0492ed43e376722bb4afd648e06cc1e627fc7ec8ff55f6ee739277813ea/orjson-3.11.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:313dfd7184cde50c733fc0d5c8c0e2f09017b573afd11dc36bd7476b30b4cb17" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/10/15/6f874857463421794a303a39ac5494786ad46a4ab46d92bda6705d78c5aa/orjson-3.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905ee036064ff1e1fd1fb800055ac477cdcb547a78c22c1bc2bbf8d5d1a6fb42" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/d2/c7/b7223a3a70f1d0cc2d86953825de45f33877ee1b124a91ca1f79aa6e643f/orjson-3.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce374cb98411356ba906914441fc993f271a7a666d838d8de0e0900dd4a4bc12" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/87/e3/aa1b6d3ad3cd80f10394134f73ae92a1d11fdbe974c34aa199cc18bb5fcf/orjson-3.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cded072b9f65fcfd188aead45efa5bd528ba552add619b3ad2a81f67400ec450" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/f6/cf/e4aac5a46cbd39d7e769ef8650efa851dfce22df1ba97ae2b33efe893b12/orjson-3.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7ab85bdbc138e1f73a234db6bb2e4cc1f0fcec8f4bd2bd2430e957a01aadf746" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/0b/04/975b86a4bcf6cfeda47aad15956d52fbeda280811206e9967380fa9355c8/orjson-3.11.6-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:351b96b614e3c37a27b8ab048239ebc1e0be76cc17481a430d70a77fb95d3844" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/28/d1/0369d0baf40eea5ff2300cebfe209883b2473ab4aa4c4974c8bd5ee42bb2/orjson-3.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f9959c85576beae5cdcaaf39510b15105f1ee8b70d5dacd90152617f57be8c83" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/ab/1f/d10c6d6ae26ff1d7c3eea6fd048280ef2e796d4fb260c5424fd021f68ecf/orjson-3.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:75682d62b1b16b61a30716d7a2ec1f4c36195de4a1c61f6665aedd947b93a5d5" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/8d/43/7479921c174441a0aa5277c313732e20713c0969ac303be9f03d88d3db5d/orjson-3.11.6-cp313-cp313-win32.whl", hash = "sha256:40dc277999c2ef227dcc13072be879b4cfd325502daeb5c35ed768f706f2bf30" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/88/bc/9ffe7dfbf8454bc4e75bb8bf3a405ed9e0598df1d3535bb4adcd46be07d0/orjson-3.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:f0f6e9f8ff7905660bc3c8a54cd4a675aa98f7f175cf00a59815e2ff42c0d916" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/6f/7e/51fa90b451470447ea5023b20d83331ec741ae28d1e6d8ed547c24e7de14/orjson-3.11.6-cp313-cp313-win_arm64.whl", hash = "sha256:1608999478664de848e5900ce41f25c4ecdfc4beacbc632b6fd55e1a586e5d38" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/31/9f/46ca908abaeeec7560638ff20276ab327b980d73b3cc2f5b205b4a1c60b3/orjson-3.11.6-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6026db2692041d2a23fe2545606df591687787825ad5821971ef0974f2c47630" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/ff/78/ca478089818d18c9cd04f79c43f74ddd031b63c70fa2a946eb5e85414623/orjson-3.11.6-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:132b0ab2e20c73afa85cf142e547511feb3d2f5b7943468984658f3952b467d4" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/39/5e/cbb9d830ed4e47f4375ad8eef8e4fff1bf1328437732c3809054fc4e80be/orjson-3.11.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b376fb05f20a96ec117d47987dd3b39265c635725bda40661b4c5b73b77b5fde" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/7c/3a/35df6558c5bc3a65ce0961aefee7f8364e59af78749fc796ea255bfa0cf5/orjson-3.11.6-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:954dae4e080574672a1dfcf2a840eddef0f27bd89b0e94903dd0824e9c1db060" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/cd/8e/3d32dd7b7f26a19cc4512d6ed0ae3429567c71feef720fe699ff43c5bc9e/orjson-3.11.6-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe515bb89d59e1e4b48637a964f480b35c0a2676de24e65e55310f6016cca7ce" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/6c/9c/1efbf5c99b3304f25d6f0d493a8d1492ee98693637c10ce65d57be839d7b/orjson-3.11.6-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:380f9709c275917af28feb086813923251e11ee10687257cd7f1ea188bcd4485" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/82/83/0d19eeb5be797de217303bbb55dde58dba26f996ed905d301d98fd2d4637/orjson-3.11.6-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8173e0d3f6081e7034c51cf984036d02f6bab2a2126de5a759d79f8e5a140e7" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/32/a7/573fec3df4dc8fc259b7770dc6c0656f91adce6e19330c78d23f87945d1e/orjson-3.11.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dddf9ba706294906c56ef5150a958317b09aa3a8a48df1c52ccf22ec1907eac" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/c2/0e/23551b16f21690f7fd5122e3cf40fdca5d77052a434d0071990f97f5fe2f/orjson-3.11.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:cbae5c34588dc79938dffb0b6fbe8c531f4dc8a6ad7f39759a9eb5d2da405ef2" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/b8/63/5e6c8f39805c39123a18e412434ea364349ee0012548d08aa586e2bd6aa9/orjson-3.11.6-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:f75c318640acbddc419733b57f8a07515e587a939d8f54363654041fd1f4e465" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/1d/4d/724975cf0087f6550bd01fd62203418afc0ea33fd099aed318c5bcc52df8/orjson-3.11.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:e0ab8d13aa2a3e98b4a43487c9205b2c92c38c054b4237777484d503357c8437" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/a8/a3/f4c4e3f46b55db29e0a5f20493b924fc791092d9a03ff2068c9fe6c1002f/orjson-3.11.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f884c7fb1020d44612bd7ac0db0babba0e2f78b68d9a650c7959bf99c783773f" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/ee/86/6f5529dd27230966171ee126cecb237ed08e9f05f6102bfaf63e5b32277d/orjson-3.11.6-cp314-cp314-win32.whl", hash = "sha256:8d1035d1b25732ec9f971e833a3e299d2b1a330236f75e6fd945ad982c76aaf3" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/d3/b5/91ae7037b2894a6b5002fb33f4fbccec98424a928469835c3837fbb22a9b/orjson-3.11.6-cp314-cp314-win_amd64.whl", hash = "sha256:931607a8865d21682bb72de54231655c86df1870502d2962dbfd12c82890d077" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/55/74/f473a3ec7a0a7ebc825ca8e3c86763f7d039f379860c81ba12dcdd456547/orjson-3.11.6-cp314-cp314-win_arm64.whl", hash = "sha256:fe71f6b283f4f1832204ab8235ce07adad145052614f77c876fcf0dac97bc06f" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/89/25/6e0e52cac5aab51d7b6dcd257e855e1dec1c2060f6b28566c509b4665f62/orjson-3.11.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1d98b30cc1313d52d4af17d9c3d307b08389752ec5f2e5febdfada70b0f8c733" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/a5/29/a77f48d2fc8a05bbc529e5ff481fb43d914f9e383ea2469d4f3d51df3d00/orjson-3.11.7-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:d897e81f8d0cbd2abb82226d1860ad2e1ab3ff16d7b08c96ca00df9d45409ef4" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/89/25/0a16e0729a0e6a1504f9d1a13cdd365f030068aab64cec6958396b9969d7/orjson-3.11.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:814be4b49b228cfc0b3c565acf642dd7d13538f966e3ccde61f4f55be3e20785" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/66/da/a2e505469d60666a05ab373f1a6322eb671cb2ba3a0ccfc7d4bc97196787/orjson-3.11.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d06e5c5fed5caedd2e540d62e5b1c25e8c82431b9e577c33537e5fa4aa909539" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/23/bf/ed73f88396ea35c71b38961734ea4a4746f7ca0768bf28fd551d37e48dd0/orjson-3.11.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31c80ce534ac4ea3739c5ee751270646cbc46e45aea7576a38ffec040b4029a1" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/73/3c/b05d80716f0225fc9008fbf8ab22841dcc268a626aa550561743714ce3bf/orjson-3.11.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f50979824bde13d32b4320eedd513431c921102796d86be3eee0b58e58a3ecd1" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/61/e8/0be9b0addd9bf86abfc938e97441dcd0375d494594b1c8ad10fe57479617/orjson-3.11.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e54f3808e2b6b945078c41aa8d9b5834b28c50843846e97807e5adb75fa9705" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/c9/ec/c68e3b9021a31d9ec15a94931db1410136af862955854ed5dd7e7e4f5bff/orjson-3.11.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12b80df61aab7b98b490fe9e4879925ba666fccdfcd175252ce4d9035865ace" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/d2/45/f3466739aaafa570cc8e77c6dbb853c48bf56e3b43738020e2661e08b0ac/orjson-3.11.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:996b65230271f1a97026fd0e6a753f51fbc0c335d2ad0c6201f711b0da32693b" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/e1/84/9f7f02288da1ffb31405c1be07657afd1eecbcb4b64ee2817b6fe0f785fa/orjson-3.11.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ab49d4b2a6a1d415ddb9f37a21e02e0d5dbfe10b7870b21bf779fc21e9156157" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/18/07/9dd2f0c0104f1a0295ffbe912bc8d63307a539b900dd9e2c48ef7810d971/orjson-3.11.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:390a1dce0c055ddf8adb6aa94a73b45a4a7d7177b5c584b8d1c1947f2ba60fb3" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/a5/66/857a8e4a3292e1f7b1b202883bcdeb43a91566cf59a93f97c53b44bd6801/orjson-3.11.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1eb80451a9c351a71dfaf5b7ccc13ad065405217726b59fdbeadbcc544f9d223" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/0a/5b/6ebcf3defc1aab3a338ca777214966851e92efb1f30dc7fc8285216e6d1b/orjson-3.11.7-cp313-cp313-win32.whl", hash = "sha256:7477aa6a6ec6139c5cb1cc7b214643592169a5494d200397c7fc95d740d5fcf3" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/00/04/c6f72daca5092e3117840a1b1e88dfc809cc1470cf0734890d0366b684a1/orjson-3.11.7-cp313-cp313-win_amd64.whl", hash = "sha256:b9f95dcdea9d4f805daa9ddf02617a89e484c6985fa03055459f90e87d7a0757" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/03/ba/077a0f6f1085d6b806937246860fafbd5b17f3919c70ee3f3d8d9c713f38/orjson-3.11.7-cp313-cp313-win_arm64.whl", hash = "sha256:800988273a014a0541483dc81021247d7eacb0c845a9d1a34a422bc718f41539" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/e9/1e/745565dca749813db9a093c5ebc4bac1a9475c64d54b95654336ac3ed961/orjson-3.11.7-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:de0a37f21d0d364954ad5de1970491d7fbd0fb1ef7417d4d56a36dc01ba0c0a0" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/46/19/e40f6225da4d3aa0c8dc6e5219c5e87c2063a560fe0d72a88deb59776794/orjson-3.11.7-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:c2428d358d85e8da9d37cba18b8c4047c55222007a84f97156a5b22028dfbfc0" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/9d/7e/c4de2babef2c0817fd1f048fd176aa48c37bec8aef53d2fa932983032cce/orjson-3.11.7-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c4bc6c6ac52cdaa267552544c73e486fecbd710b7ac09bc024d5a78555a22f6" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/eb/74/233d360632bafd2197f217eee7fb9c9d0229eac0c18128aee5b35b0014fe/orjson-3.11.7-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd0d68edd7dfca1b2eca9361a44ac9f24b078de3481003159929a0573f21a6bf" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/79/51/af79504981dd31efe20a9e360eb49c15f06df2b40e7f25a0a52d9ae888e8/orjson-3.11.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:623ad1b9548ef63886319c16fa317848e465a21513b31a6ad7b57443c3e0dcf5" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/67/e2/da898eb68b72304f8de05ca6715870d09d603ee98d30a27e8a9629abc64b/orjson-3.11.7-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6e776b998ac37c0396093d10290e60283f59cfe0fc3fccbd0ccc4bd04dd19892" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/c5/89/15364d92acb3d903b029e28d834edb8780c2b97404cbf7929aa6b9abdb24/orjson-3.11.7-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:652c6c3af76716f4a9c290371ba2e390ede06f6603edb277b481daf37f6f464e" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/c2/8b/ecdad52d0b38d4b8f514be603e69ccd5eacf4e7241f972e37e79792212ec/orjson-3.11.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a56df3239294ea5964adf074c54bcc4f0ccd21636049a2cf3ca9cf03b5d03cf1" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/b9/0e/45e1dcf10e17d0924b7c9162f87ec7b4ca79e28a0548acf6a71788d3e108/orjson-3.11.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bda117c4148e81f746655d5a3239ae9bd00cb7bc3ca178b5fc5a5997e9744183" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/63/d7/4d2e8b03561257af0450f2845b91fbd111d7e526ccdf737267108075e0ba/orjson-3.11.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:23d6c20517a97a9daf1d48b580fcdc6f0516c6f4b5038823426033690b4d2650" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/78/cf/d45343518282108b29c12a65892445fc51f9319dc3c552ceb51bb5905ed2/orjson-3.11.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8ff206156006da5b847c9304b6308a01e8cdbc8cce824e2779a5ba71c3def141" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/a9/3a/d6001f51a7275aacd342e77b735c71fa04125a3f93c36fee4526bc8c654e/orjson-3.11.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:962d046ee1765f74a1da723f4b33e3b228fe3a48bd307acce5021dfefe0e29b2" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/1d/d3/f19b47ce16820cc2c480f7f1723e17f6d411b3a295c60c8ad3aa9ff1c96a/orjson-3.11.7-cp314-cp314-win32.whl", hash = "sha256:89e13dd3f89f1c38a9c9eba5fbf7cdc2d1feca82f5f290864b4b7a6aac704576" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/12/df/172771902943af54bf661a8d102bdf2e7f932127968080632bda6054b62c/orjson-3.11.7-cp314-cp314-win_amd64.whl", hash = "sha256:845c3e0d8ded9c9271cd79596b9b552448b885b97110f628fb687aee2eed11c1" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/6f/1c/f2a8d8a1b17514660a614ce5f7aac74b934e69f5abc2700cc7ced882a009/orjson-3.11.7-cp314-cp314-win_arm64.whl", hash = "sha256:4a2e9c5be347b937a2e0203866f12bba36082e89b402ddb9e927d5822e43088d" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1220,6 +1244,15 @@ wheels = [
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/89/f0/8956f8a86b20d7bb9d6ac0187cf4cd54d8065bc9a1a09eb8011d4d326596/redis-7.1.0-py3-none-any.whl", hash = "sha256:23c52b208f92b56103e17c5d06bdc1a6c2c0b3106583985a76a18f83b265de2b" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "setuptools"
|
||||
version = "80.10.2"
|
||||
source = { registry = "https://mirrors.aliyun.com/pypi/simple" }
|
||||
sdist = { url = "https://mirrors.aliyun.com/pypi/packages/76/95/faf61eb8363f26aa7e1d762267a8d602a1b26d4f3a1e758e92cb3cb8b054/setuptools-80.10.2.tar.gz", hash = "sha256:8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70" }
|
||||
wheels = [
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/94/b8/f1f62a5e3c0ad2ff1d189590bfa4c46b4f3b6e49cef6f26c6ee4e575394d/setuptools-80.10.2-py3-none-any.whl", hash = "sha256:95b30ddfb717250edb492926c92b5221f7ef3fbcc2b07579bcd4a27da21d0173" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "shortuuid"
|
||||
version = "1.0.13"
|
||||
@@ -1342,10 +1375,10 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "ua-parser-builtins"
|
||||
version = "202601"
|
||||
version = "202602"
|
||||
source = { registry = "https://mirrors.aliyun.com/pypi/simple" }
|
||||
wheels = [
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/fd/82/aab481e2fc6dee0a13ce35c750e97dbe3f270fb327089c99a8f5e6900e0c/ua_parser_builtins-202601-py3-none-any.whl", hash = "sha256:f5dc93b0f53724dcd5c3eb79edb0aea281cb304a2c02a9436cbeb8cfb8bc4ad1" },
|
||||
{ url = "https://mirrors.aliyun.com/pypi/packages/10/4a/ce8a586f7376f6bceabfe5f12f5e542db998517f08a461bb18294ff19bd1/ua_parser_builtins-202602-py3-none-any.whl", hash = "sha256:07e44db44e916076cf999cbe2ccc37f25bd689844e8748511caec23e961a04cb" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
Reference in New Issue
Block a user