保存修订
This commit is contained in:
Binary file not shown.
@@ -3,7 +3,7 @@ from pathlib import Path
|
|||||||
from ninja_extra import api_controller, ControllerBase, route
|
from ninja_extra import api_controller, ControllerBase, route
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.db.models import Q
|
from django.db.models import Q, QuerySet
|
||||||
from docxtpl import DocxTemplate
|
from docxtpl import DocxTemplate
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from docx import Document
|
from docx import Document
|
||||||
@@ -16,7 +16,8 @@ from apps.createDocument.extensions import util
|
|||||||
from utils.chen_response import ChenResponse
|
from utils.chen_response import ChenResponse
|
||||||
from apps.createDocument.extensions.util import create_bg_docx, get_round1_problem
|
from apps.createDocument.extensions.util import create_bg_docx, get_round1_problem
|
||||||
from utils.util import get_str_dict, get_list_dict, create_problem_grade_str, create_str_testType_list, \
|
from utils.util import get_str_dict, get_list_dict, create_problem_grade_str, create_str_testType_list, \
|
||||||
create_demand_summary, create_problem_type_str, create_problem_table, create_problem_type_table, get_str_abbr
|
create_demand_summary, create_problem_type_str, create_problem_table, create_problem_type_table, \
|
||||||
|
get_str_abbr
|
||||||
# 根据轮次生成测评内容文档context
|
# 根据轮次生成测评内容文档context
|
||||||
from apps.createDocument.extensions.content_result_tool import create_round_context
|
from apps.createDocument.extensions.content_result_tool import create_round_context
|
||||||
from apps.createDocument.extensions.zhui import create_bg_round1_zhui
|
from apps.createDocument.extensions.zhui import create_bg_round1_zhui
|
||||||
@@ -62,9 +63,11 @@ class GenerateControllerBG(ControllerBase):
|
|||||||
'publish_date': timer.dg_cover_time, 'source': project_obj.test_unit}
|
'publish_date': timer.dg_cover_time, 'source': project_obj.test_unit}
|
||||||
std_documents.append(dg_duty)
|
std_documents.append(dg_duty)
|
||||||
# 需要添加说明、记录
|
# 需要添加说明、记录
|
||||||
sm_duty = {'doc_name': f'{project_obj.name}软件测试说明', 'ident_version': f'PT-{project_obj.ident}-TD-1.00',
|
sm_duty = {'doc_name': f'{project_obj.name}软件测试说明',
|
||||||
|
'ident_version': f'PT-{project_obj.ident}-TD-1.00',
|
||||||
'publish_date': timer.sm_cover_time, 'source': project_obj.test_unit}
|
'publish_date': timer.sm_cover_time, 'source': project_obj.test_unit}
|
||||||
jl_duty = {'doc_name': f'{project_obj.name}软件测试记录', 'ident_version': f'PT-{project_obj.ident}-TN',
|
jl_duty = {'doc_name': f'{project_obj.name}软件测试记录',
|
||||||
|
'ident_version': f'PT-{project_obj.ident}-TN',
|
||||||
'publish_date': timer.jl_cover_time, 'source': project_obj.test_unit}
|
'publish_date': timer.jl_cover_time, 'source': project_obj.test_unit}
|
||||||
# 循环所有轮次,除了第一轮
|
# 循环所有轮次,除了第一轮
|
||||||
std_documents.extend([sm_duty, jl_duty])
|
std_documents.extend([sm_duty, jl_duty])
|
||||||
@@ -144,7 +147,8 @@ class GenerateControllerBG(ControllerBase):
|
|||||||
for case in round1_case_qs:
|
for case in round1_case_qs:
|
||||||
demand: TestDemand = case.test
|
demand: TestDemand = case.test
|
||||||
test_type_set.add(demand.testType)
|
test_type_set.add(demand.testType)
|
||||||
round1_testType_list = list(map(lambda x: x['ident_version'], get_list_dict('testType', list(test_type_set))))
|
round1_testType_list = list(
|
||||||
|
map(lambda x: x['ident_version'], get_list_dict('testType', list(test_type_set))))
|
||||||
# 这里找出第一轮,源代码被测件,并获取版本
|
# 这里找出第一轮,源代码被测件,并获取版本
|
||||||
so_dut = round1.rdField.filter(type='SO').first()
|
so_dut = round1.rdField.filter(type='SO').first()
|
||||||
so_dut_verson = "$请添加第一轮的源代码信息$"
|
so_dut_verson = "$请添加第一轮的源代码信息$"
|
||||||
@@ -158,7 +162,8 @@ class GenerateControllerBG(ControllerBase):
|
|||||||
# 找所属dut的so-dut
|
# 找所属dut的so-dut
|
||||||
so_dut = r.rdField.filter(type='SO').first()
|
so_dut = r.rdField.filter(type='SO').first()
|
||||||
# 找出上一轮dut的so-dut
|
# 找出上一轮dut的so-dut
|
||||||
last_problem_count = Problem.objects.filter(case__round__key=str(int(r.key) - 1)).distinct().count()
|
last_problem_count = Problem.objects.filter(
|
||||||
|
case__round__key=str(int(r.key) - 1)).distinct().count()
|
||||||
current_round_problem_count = Problem.objects.filter(case__round__key=r.key).distinct().count()
|
current_round_problem_count = Problem.objects.filter(case__round__key=r.key).distinct().count()
|
||||||
if current_round_problem_count > 0:
|
if current_round_problem_count > 0:
|
||||||
current_round_description = f'引入新问题{current_round_problem_count}个'
|
current_round_description = f'引入新问题{current_round_problem_count}个'
|
||||||
@@ -294,14 +299,16 @@ class GenerateControllerBG(ControllerBase):
|
|||||||
static_problems = problems_r1.filter(case__test__testType='15')
|
static_problems = problems_r1.filter(case__test__testType='15')
|
||||||
|
|
||||||
# 6.第一轮动态测试用例个数(动态测试-非静态分析、文档审查、代码审查、代码走查4个)
|
# 6.第一轮动态测试用例个数(动态测试-非静态分析、文档审查、代码审查、代码走查4个)
|
||||||
case_r1_qs = round1.rcField.filter(~Q(test__testType='2'), ~Q(test__testType='3'), ~Q(test__testType='8'),
|
case_r1_qs = round1.rcField.filter(~Q(test__testType='2'), ~Q(test__testType='3'),
|
||||||
|
~Q(test__testType='8'),
|
||||||
~Q(test__testType='15'),
|
~Q(test__testType='15'),
|
||||||
round__key='0') # !warning:中变量-第一轮动态测试用例qs
|
round__key='0') # !warning:中变量-第一轮动态测试用例qs
|
||||||
testType_list, testType_count = create_str_testType_list(case_r1_qs)
|
testType_list, testType_count = create_str_testType_list(case_r1_qs)
|
||||||
## 动态测试(第一轮)各个类型测试用例执行表/各个测试需求表
|
## 动态测试(第一轮)各个类型测试用例执行表/各个测试需求表
|
||||||
demand_r1_dynamic_qs = round1.rtField.filter(~Q(testType='2'), ~Q(testType='3'), ~Q(testType='8'),
|
demand_r1_dynamic_qs = round1.rtField.filter(~Q(testType='2'), ~Q(testType='3'), ~Q(testType='8'),
|
||||||
~Q(testType='15')) # !warning:中变量:第一轮动态测试的测试项
|
~Q(testType='15')) # !warning:中变量:第一轮动态测试的测试项
|
||||||
summary_r1_demand_info, summry_r1_demandType_info = create_demand_summary(demand_r1_dynamic_qs, project_ident)
|
summary_r1_demand_info, summry_r1_demandType_info = create_demand_summary(demand_r1_dynamic_qs,
|
||||||
|
project_ident)
|
||||||
|
|
||||||
# N.第一轮所有动态问题统计
|
# N.第一轮所有动态问题统计
|
||||||
problems_dynamic_r1 = problems_r1.filter(~Q(case__test__testType='2'), ~Q(case__test__testType='3'),
|
problems_dynamic_r1 = problems_r1.filter(~Q(case__test__testType='2'), ~Q(case__test__testType='3'),
|
||||||
@@ -450,7 +457,8 @@ class GenerateControllerBG(ControllerBase):
|
|||||||
for design in round1_design_yz_qs:
|
for design in round1_design_yz_qs:
|
||||||
rich_parser2 = RichParser(design.description)
|
rich_parser2 = RichParser(design.description)
|
||||||
p_list = rich_parser2.get_final_p_list()
|
p_list = rich_parser2.get_final_p_list()
|
||||||
design_dict = {'yz_des': "".join([design.chapter, '章节:', design.name, '\a', '\a'.join(p_list)])}
|
design_dict = {
|
||||||
|
'yz_des': "".join([design.chapter, '章节:', design.name, '\a', '\a'.join(p_list)])}
|
||||||
# 找出其中所有demand
|
# 找出其中所有demand
|
||||||
demand_qs = design.dtField.all()
|
demand_qs = design.dtField.all()
|
||||||
if not demand_qs.exists():
|
if not demand_qs.exists():
|
||||||
@@ -545,7 +553,7 @@ class GenerateControllerBG(ControllerBase):
|
|||||||
last_dut_so = dut_so
|
last_dut_so = dut_so
|
||||||
break
|
break
|
||||||
# 找出所有被测件协议(XY)、需求规格说明(XQ)、设计说明(SJ)
|
# 找出所有被测件协议(XY)、需求规格说明(XQ)、设计说明(SJ)
|
||||||
duties_qs: list[Dut] = project_obj.pdField.filter(Q(type='XQ') | Q(type='SJ') | Q(type='XY'))
|
duties_qs = project_obj.pdField.filter(Q(type='XQ') | Q(type='SJ') | Q(type='XY'))
|
||||||
# ***Inspect-start***
|
# ***Inspect-start***
|
||||||
if not last_dut_so:
|
if not last_dut_so:
|
||||||
self.logger.model = '测评报告'
|
self.logger.model = '测评报告'
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -110,8 +110,9 @@ class TestDemandController(ControllerBase):
|
|||||||
# ident判重
|
# ident判重
|
||||||
project_qs = Project.objects.filter(id=payload.project_id).first()
|
project_qs = Project.objects.filter(id=payload.project_id).first()
|
||||||
if payload.ident and project_qs:
|
if payload.ident and project_qs:
|
||||||
exists = project_qs.ptField.filter(ident=payload.ident).exists()
|
old_obj = project_qs.ptField.filter(ident=payload.ident).first()
|
||||||
if exists:
|
# 2025/06/24修改,现在运行不同测试类型有相同的标识
|
||||||
|
if old_obj and old_obj.testType == payload.testType:
|
||||||
return ChenResponse(code=500, status=500,
|
return ChenResponse(code=500, status=500,
|
||||||
message='测试项标识和其他测试项重复,请更换测试项标识!!!')
|
message='测试项标识和其他测试项重复,请更换测试项标识!!!')
|
||||||
# 构造design_key
|
# 构造design_key
|
||||||
@@ -161,9 +162,11 @@ class TestDemandController(ControllerBase):
|
|||||||
for attr, value in payload.dict().items():
|
for attr, value in payload.dict().items():
|
||||||
# 判重复
|
# 判重复
|
||||||
if attr == 'ident':
|
if attr == 'ident':
|
||||||
if testDemand_qs.ident != value: # 如果ident不和原来相等,则要判重复
|
# 先判断是否和原标识一样,且测试类型改变
|
||||||
exists = project_qs.ptField.filter(ident=payload.ident).exists()
|
if payload.dict()['testType'] != testDemand_qs.testType and value == old_ident:
|
||||||
if exists:
|
old_obj = project_qs.ptField.filter(ident=payload.ident).first()
|
||||||
|
# 2025/06/24修改不同类型可以相同
|
||||||
|
if old_obj and old_obj.testType == payload.dict()['testType']:
|
||||||
return ChenResponse(code=500, status=500, message='更换的标识和其他测试项重复')
|
return ChenResponse(code=500, status=500, message='更换的标识和其他测试项重复')
|
||||||
if attr == 'project_id' or attr == 'round_key' or attr == 'dut_key' or attr == 'design_key':
|
if attr == 'project_id' or attr == 'round_key' or attr == 'dut_key' or attr == 'design_key':
|
||||||
continue # 如果发现是key则不处理
|
continue # 如果发现是key则不处理
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 5.2.3 on 2025-06-20 19:25
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('project', '0016_dutmetrics'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='testdemandcontentstep',
|
||||||
|
name='id',
|
||||||
|
field=models.BigAutoField(help_text='Id', primary_key=True, serialize=False, verbose_name='Id'),
|
||||||
|
),
|
||||||
|
]
|
||||||
Binary file not shown.
@@ -258,7 +258,6 @@ class TestDemandContent(CoreModel):
|
|||||||
# 4月17日新增:因为测试项需要测试子项step
|
# 4月17日新增:因为测试项需要测试子项step
|
||||||
class TestDemandContentStep(CoreModel):
|
class TestDemandContentStep(CoreModel):
|
||||||
objects = models.Manager()
|
objects = models.Manager()
|
||||||
id = ShortUUIDField(primary_key=True, help_text="Id", verbose_name="Id")
|
|
||||||
operation = models.CharField(max_length=3072, blank=True, null=True, verbose_name='测试子项操作')
|
operation = models.CharField(max_length=3072, blank=True, null=True, verbose_name='测试子项操作')
|
||||||
expect = models.CharField(max_length=1024, blank=True, null=True, verbose_name='期望')
|
expect = models.CharField(max_length=1024, blank=True, null=True, verbose_name='期望')
|
||||||
testDemandContent = models.ForeignKey(to="TestDemandContent", db_constraint=False, related_name="testStepField",
|
testDemandContent = models.ForeignKey(to="TestDemandContent", db_constraint=False, related_name="testStepField",
|
||||||
|
|||||||
Binary file not shown.
@@ -14,7 +14,8 @@ from ninja_jwt.controller import TokenObtainPairController
|
|||||||
from ninja_jwt import schema
|
from ninja_jwt import schema
|
||||||
from typing import List
|
from typing import List
|
||||||
from utils.chen_response import ChenResponse
|
from utils.chen_response import ChenResponse
|
||||||
from apps.user.schema import UserInfoOutSchema, CreateUserSchema, CreateUserOutSchema, UserRetrieveInputSchema, \
|
from apps.user.schema import UserInfoOutSchema, CreateUserSchema, CreateUserOutSchema, \
|
||||||
|
UserRetrieveInputSchema, \
|
||||||
UserRetrieveOutSchema, UpdateDeleteUserSchema, UpdateDeleteUserOutSchema, DeleteUserSchema, LogOutSchema, \
|
UserRetrieveOutSchema, UpdateDeleteUserSchema, UpdateDeleteUserOutSchema, DeleteUserSchema, LogOutSchema, \
|
||||||
LogInputSchema, LogDeleteInSchema, AdminModifyPasswordSchema
|
LogInputSchema, LogDeleteInSchema, AdminModifyPasswordSchema
|
||||||
from apps.user.models import TableOperationLog, Users as UserClass
|
from apps.user.models import TableOperationLog, Users as UserClass
|
||||||
@@ -102,7 +103,8 @@ class UserManageController(ControllerBase):
|
|||||||
create_datetime__range=date_list).order_by('-create_datetime')
|
create_datetime__range=date_list).order_by('-create_datetime')
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
@route.put("/update/{user_id}", response=UpdateDeleteUserOutSchema, permissions=[IsAuthenticated, IsAdminUser],
|
@route.put("/update/{user_id}", response=UpdateDeleteUserOutSchema,
|
||||||
|
permissions=[IsAuthenticated, IsAdminUser],
|
||||||
url_name="user-update")
|
url_name="user-update")
|
||||||
def update_user(self, user_id: int, payload: UpdateDeleteUserSchema):
|
def update_user(self, user_id: int, payload: UpdateDeleteUserSchema):
|
||||||
if payload.username == "superAdmin":
|
if payload.username == "superAdmin":
|
||||||
@@ -122,7 +124,8 @@ class UserManageController(ControllerBase):
|
|||||||
return ChenResponse(code=200, status=200, message="删除成功")
|
return ChenResponse(code=200, status=200, message="删除成功")
|
||||||
|
|
||||||
# 管理员改变用户状态是否停用/启用
|
# 管理员改变用户状态是否停用/启用
|
||||||
@route.get('/change_status', auth=JWTAuth(), permissions=[IsAuthenticated, IsAdminUser], url_name='user-change')
|
@route.get('/change_status', auth=JWTAuth(), permissions=[IsAuthenticated, IsAdminUser],
|
||||||
|
url_name='user-change')
|
||||||
def change_user_status(self, user_status: str, userId: int):
|
def change_user_status(self, user_status: str, userId: int):
|
||||||
user = Users.objects.filter(id=userId).first()
|
user = Users.objects.filter(id=userId).first()
|
||||||
if not user:
|
if not user:
|
||||||
@@ -144,6 +147,7 @@ class UserManageController(ControllerBase):
|
|||||||
user.set_password(payload.newPassword)
|
user.set_password(payload.newPassword)
|
||||||
user.save()
|
user.save()
|
||||||
return ChenResponse(status=200, code=200, message='管理员修改密码成功')
|
return ChenResponse(status=200, code=200, message='管理员修改密码成功')
|
||||||
|
return None
|
||||||
|
|
||||||
# 用户登录后动态读取LDAP用户录入数据
|
# 用户登录后动态读取LDAP用户录入数据
|
||||||
@route.get("/ldap", url_name='user-ldap')
|
@route.get("/ldap", url_name='user-ldap')
|
||||||
@@ -171,7 +175,8 @@ class LogController(ControllerBase):
|
|||||||
logs = logs.filter(user__username__icontains=data.user, create_datetime__range=data.create_datetime)
|
logs = logs.filter(user__username__icontains=data.user, create_datetime__range=data.create_datetime)
|
||||||
return logs
|
return logs
|
||||||
|
|
||||||
@route.get('/operation_delete', url_name='log_delete', permissions=[IsAuthenticated, IsAdminUser], auth=JWTAuth())
|
@route.get('/operation_delete', url_name='log_delete', permissions=[IsAuthenticated, IsAdminUser],
|
||||||
|
auth=JWTAuth())
|
||||||
def log_delete(self, data: LogDeleteInSchema = Query(...)):
|
def log_delete(self, data: LogDeleteInSchema = Query(...)):
|
||||||
time = datetime.now() - timedelta(days=data.day)
|
time = datetime.now() - timedelta(days=data.day)
|
||||||
log_qs = TableOperationLog.objects.filter(create_datetime__lt=time)
|
log_qs = TableOperationLog.objects.filter(create_datetime__lt=time)
|
||||||
|
|||||||
Binary file not shown.
@@ -1,7 +1,15 @@
|
|||||||
import ldap
|
import ldap
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
|
import environ
|
||||||
|
|
||||||
def load_ldap_users(url='ldap://dns.paisat.cn:389',
|
# 1. 环境变量读取
|
||||||
|
env = environ.Env()
|
||||||
|
|
||||||
|
# 2. LDAP服务器host和port
|
||||||
|
server_uri = env('AUTH_LDAP_SERVER_URI', default='ldap://dns.paisat.cn:389')
|
||||||
|
|
||||||
|
# 3. 连接LDAP服务器进行操作
|
||||||
|
def load_ldap_users(url=server_uri,
|
||||||
dn="CN=Administrator,CN=Users,DC=sstc,DC=ctu",
|
dn="CN=Administrator,CN=Users,DC=sstc,DC=ctu",
|
||||||
pwd="WXWX2019!!!!!!",
|
pwd="WXWX2019!!!!!!",
|
||||||
search_dn="OU=ALL,DC=sstc,DC=ctu",
|
search_dn="OU=ALL,DC=sstc,DC=ctu",
|
||||||
|
|||||||
Binary file not shown.
289
logs/root_log
289
logs/root_log
@@ -43,3 +43,292 @@
|
|||||||
[WARNING][2025-05-28 09:24:26,068][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
[WARNING][2025-05-28 09:24:26,068][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
[WARNING][2025-05-28 18:35:30,083][log.py:248]Not Found: /api/project/testDemand/priorityReplace/
|
[WARNING][2025-05-28 18:35:30,083][log.py:248]Not Found: /api/project/testDemand/priorityReplace/
|
||||||
[WARNING][2025-05-28 18:35:42,929][log.py:248]Not Found: /api/project/testDemand/priorityReplace/
|
[WARNING][2025-05-28 18:35:42,929][log.py:248]Not Found: /api/project/testDemand/priorityReplace/
|
||||||
|
[WARNING][2025-05-29 09:22:57,248][log.py:248]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-05-29 09:22:57,316][log.py:248]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-05-29 09:23:05,519][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-05-29 15:36:46,411][log.py:248]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-05-29 15:36:46,430][log.py:248]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-05-29 15:36:55,727][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-05-29 15:42:40,386][operation.py:133]"GET - CaseController[copy_move_case_to_demand] /api/project/case/copy_or_move_to_demand" (500, '无法移动到自己所属测试项里面')
|
||||||
|
[ERROR][2025-05-29 15:42:40,395][log.py:248]Internal Server Error: /api/project/case/copy_or_move_to_demand
|
||||||
|
[WARNING][2025-06-12 19:52:28,194][log.py:248]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-06-12 19:52:28,229][log.py:248]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-06-12 19:52:39,174][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-06-16 18:40:17,570][log.py:248]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-06-16 18:40:17,629][log.py:248]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-06-16 18:40:25,246][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-06-17 18:40:34,724][log.py:248]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-06-17 18:40:34,779][log.py:248]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-06-17 18:40:44,206][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-06-17 19:06:24,482][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-06-17 19:28:33,023][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-06-17 19:34:34,074][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-06-17 19:35:56,384][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[ERROR][2025-06-17 19:38:35,896][log.py:248]Internal Server Error: /api/project/case/create_by_demand
|
||||||
|
[WARNING][2025-06-17 19:39:08,972][operation.py:133]"GET - CaseController[copy_move_case_to_demand] /api/project/case/copy_or_move_to_demand" (500, '无法移动到自己所属测试项里面')
|
||||||
|
[ERROR][2025-06-17 19:39:08,982][log.py:248]Internal Server Error: /api/project/case/copy_or_move_to_demand
|
||||||
|
[ERROR][2025-06-17 19:50:34,107][log.py:248]Internal Server Error: /api/testmanage/project/update/37
|
||||||
|
[ERROR][2025-06-17 19:51:22,090][log.py:248]Internal Server Error: /api/testmanage/project/update/37
|
||||||
|
[WARNING][2025-06-17 19:55:44,124][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-06-17 20:00:39,048][operation.py:133]"GET - CaseController[copy_move_case_to_demand] /api/project/case/copy_or_move_to_demand" (500, '无法移动到自己所属测试项里面')
|
||||||
|
[ERROR][2025-06-17 20:00:39,059][log.py:248]Internal Server Error: /api/project/case/copy_or_move_to_demand
|
||||||
|
[WARNING][2025-06-20 18:31:43,742][log.py:253]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-06-20 18:31:43,795][log.py:253]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-06-20 18:31:55,956][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-06-20 19:13:50,800][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/538" ('QuerySet.create() takes 1 positional argument but 2 were given',)
|
||||||
|
[ERROR][2025-06-20 19:13:50,800][errors.py:131]QuerySet.create() takes 1 positional argument but 2 were given
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 195, in update_testDemand
|
||||||
|
TestDemandContentStep.objects.create(step)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\manager.py", line 87, in manager_method
|
||||||
|
return getattr(self.get_queryset(), name)(*args, **kwargs)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
|
||||||
|
TypeError: QuerySet.create() takes 1 positional argument but 2 were given
|
||||||
|
[ERROR][2025-06-20 19:13:50,825][log.py:253]Internal Server Error: /api/project/testDemand/update/538
|
||||||
|
[WARNING][2025-06-20 19:14:14,201][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/538" ('QuerySet.create() takes 1 positional argument but 2 were given',)
|
||||||
|
[ERROR][2025-06-20 19:14:14,201][errors.py:131]QuerySet.create() takes 1 positional argument but 2 were given
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 196, in update_testDemand
|
||||||
|
TestDemandContentStep.objects.create(step)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\manager.py", line 87, in manager_method
|
||||||
|
return getattr(self.get_queryset(), name)(*args, **kwargs)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
|
||||||
|
TypeError: QuerySet.create() takes 1 positional argument but 2 were given
|
||||||
|
[ERROR][2025-06-20 19:14:14,204][log.py:253]Internal Server Error: /api/project/testDemand/update/538
|
||||||
|
[WARNING][2025-06-20 19:22:54,908][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/538" ("Field 'id' expected a number but got 'akExxrjyerVcPhHsAsRBcB'.",)
|
||||||
|
[ERROR][2025-06-20 19:22:54,908][errors.py:131]Field 'id' expected a number but got 'akExxrjyerVcPhHsAsRBcB'.
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\fields\__init__.py", line 2128, in get_prep_value
|
||||||
|
return int(value)
|
||||||
|
ValueError: invalid literal for int() with base 10: 'akExxrjyerVcPhHsAsRBcB'
|
||||||
|
|
||||||
|
The above exception was the direct cause of the following exception:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 177, in update_testDemand
|
||||||
|
content_single.delete()
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~^^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\base.py", line 1281, in delete
|
||||||
|
return collector.delete()
|
||||||
|
~~~~~~~~~~~~~~~~^^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\deletion.py", line 501, in delete
|
||||||
|
count = query.delete_batch(pk_list, self.using)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\sql\subqueries.py", line 38, in delete_batch
|
||||||
|
self.add_filter(
|
||||||
|
~~~~~~~~~~~~~~~^
|
||||||
|
f"{field.attname}__in",
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
pk_list[offset : offset + GET_ITERATOR_CHUNK_SIZE],
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
)
|
||||||
|
^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\sql\query.py", line 1626, in add_filter
|
||||||
|
self.add_q(Q((filter_lhs, filter_rhs)))
|
||||||
|
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\sql\query.py", line 1646, in add_q
|
||||||
|
clause, _ = self._add_q(q_object, can_reuse)
|
||||||
|
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\sql\query.py", line 1678, in _add_q
|
||||||
|
child_clause, needed_inner = self.build_filter(
|
||||||
|
~~~~~~~~~~~~~~~~~^
|
||||||
|
child,
|
||||||
|
^^^^^^
|
||||||
|
...<7 lines>...
|
||||||
|
update_join_types=update_join_types,
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
)
|
||||||
|
^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\sql\query.py", line 1588, in build_filter
|
||||||
|
condition = self.build_lookup(lookups, col, value)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\sql\query.py", line 1415, in build_lookup
|
||||||
|
lookup = lookup_class(lhs, rhs)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\lookups.py", line 38, in __init__
|
||||||
|
self.rhs = self.get_prep_lookup()
|
||||||
|
~~~~~~~~~~~~~~~~~~~~^^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\lookups.py", line 536, in get_prep_lookup
|
||||||
|
return super().get_prep_lookup()
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~^^
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\lookups.py", line 321, in get_prep_lookup
|
||||||
|
rhs_value = self.lhs.output_field.get_prep_value(rhs_value)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\django\db\models\fields\__init__.py", line 2130, in get_prep_value
|
||||||
|
raise e.__class__(
|
||||||
|
"Field '%s' expected a number but got %r." % (self.name, value),
|
||||||
|
) from e
|
||||||
|
ValueError: Field 'id' expected a number but got 'akExxrjyerVcPhHsAsRBcB'.
|
||||||
|
[ERROR][2025-06-20 19:22:54,954][log.py:253]Internal Server Error: /api/project/testDemand/update/538
|
||||||
|
[WARNING][2025-06-23 09:38:48,076][log.py:253]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-06-23 09:38:48,135][log.py:253]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-06-23 09:39:01,200][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[ERROR][2025-06-23 09:39:40,070][log.py:253]Internal Server Error: /api/project/testDemand/save
|
||||||
|
[WARNING][2025-06-23 15:50:09,104][log.py:253]Not Found: /
|
||||||
|
[WARNING][2025-06-23 15:50:09,106][log.py:253]Not Found: /
|
||||||
|
[WARNING][2025-06-23 15:50:09,228][log.py:253]Not Found: /favicon.ico
|
||||||
|
[WARNING][2025-06-24 10:48:24,474][log.py:253]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-06-24 10:48:24,540][log.py:253]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-06-24 10:48:31,280][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[ERROR][2025-06-24 13:23:43,307][log.py:253]Internal Server Error: /api/project/testDemand/save
|
||||||
|
[ERROR][2025-06-24 13:25:24,728][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[WARNING][2025-06-24 13:30:41,064][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/554" ("'str' object has no attribute 'testType'",)
|
||||||
|
[ERROR][2025-06-24 13:30:41,064][errors.py:131]'str' object has no attribute 'testType'
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 167, in update_testDemand
|
||||||
|
if old_obj and old_ident.testType == payload.dict().items()['testType']:
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
AttributeError: 'str' object has no attribute 'testType'
|
||||||
|
[ERROR][2025-06-24 13:30:41,088][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[WARNING][2025-06-24 13:31:40,139][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/554" ("'str' object has no attribute 'testType'",)
|
||||||
|
[ERROR][2025-06-24 13:31:40,139][errors.py:131]'str' object has no attribute 'testType'
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 167, in update_testDemand
|
||||||
|
if old_obj and old_ident.testType == payload.dict()['testType']:
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
AttributeError: 'str' object has no attribute 'testType'
|
||||||
|
[ERROR][2025-06-24 13:31:40,141][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[WARNING][2025-06-24 13:32:21,173][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/554" ("'str' object has no attribute 'testType'",)
|
||||||
|
[ERROR][2025-06-24 13:32:21,173][errors.py:131]'str' object has no attribute 'testType'
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 168, in update_testDemand
|
||||||
|
if old_obj and old_ident.testType == payload.dict()['testType']:
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
AttributeError: 'str' object has no attribute 'testType'
|
||||||
|
[ERROR][2025-06-24 13:32:21,177][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[WARNING][2025-06-24 13:32:54,351][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/554" ("'str' object has no attribute 'testType'",)
|
||||||
|
[ERROR][2025-06-24 13:32:54,351][errors.py:131]'str' object has no attribute 'testType'
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 168, in update_testDemand
|
||||||
|
if old_obj and old_ident.testType == payload.dict()['testType']:
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
AttributeError: 'str' object has no attribute 'testType'
|
||||||
|
[ERROR][2025-06-24 13:32:54,355][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[WARNING][2025-06-24 13:33:28,458][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/554" ("'str' object has no attribute 'testType'",)
|
||||||
|
[ERROR][2025-06-24 13:33:28,459][errors.py:131]'str' object has no attribute 'testType'
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 168, in update_testDemand
|
||||||
|
if old_obj and old_ident.testType == payload.dict()['testType']:
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
AttributeError: 'str' object has no attribute 'testType'
|
||||||
|
[ERROR][2025-06-24 13:33:28,461][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[WARNING][2025-06-24 13:34:49,241][operation.py:133]"PUT - TestDemandController[update_testDemand] /api/project/testDemand/update/554" ("'str' object has no attribute 'testType'",)
|
||||||
|
[ERROR][2025-06-24 13:34:49,242][errors.py:131]'str' object has no attribute 'testType'
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\.venv\Lib\site-packages\ninja_extra\operation.py", line 214, 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 99, in as_view
|
||||||
|
result = self.route.view_func(
|
||||||
|
ctx.controller_instance, *args, **ctx.view_func_kwargs
|
||||||
|
)
|
||||||
|
File "D:\python13\Lib\contextlib.py", line 85, in inner
|
||||||
|
return func(*args, **kwds)
|
||||||
|
File "E:\pycharmProjects\cdtestplant_v1\apps\project\controllers\testDemand.py", line 168, in update_testDemand
|
||||||
|
if old_obj and old_ident.testType == payload.dict()['testType']:
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
AttributeError: 'str' object has no attribute 'testType'
|
||||||
|
[ERROR][2025-06-24 13:34:49,243][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[ERROR][2025-06-24 13:37:25,218][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[ERROR][2025-06-24 13:45:28,405][log.py:253]Internal Server Error: /api/project/testDemand/update/538
|
||||||
|
[ERROR][2025-06-24 13:45:37,820][log.py:253]Internal Server Error: /api/project/testDemand/update/538
|
||||||
|
[ERROR][2025-06-24 13:54:04,108][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 13:54:21,656][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 13:54:51,291][log.py:253]Internal Server Error: /api/project/testDemand/update/554
|
||||||
|
[ERROR][2025-06-24 13:57:11,927][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 13:58:49,636][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 13:59:26,395][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 13:59:35,647][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:00:17,238][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:00:20,458][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:00:20,967][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:00:32,875][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:00:33,431][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:03:50,425][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:03:52,007][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:03:52,376][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[ERROR][2025-06-24 14:03:52,509][log.py:253]Internal Server Error: /api/project/testDemand/update/574
|
||||||
|
[WARNING][2025-06-25 19:59:39,817][log.py:253]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-06-25 19:59:39,875][log.py:253]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-06-25 19:59:48,452][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-07-11 20:26:09,493][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-08-02 23:11:38,217][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-08-11 10:51:01,112][log.py:253]Not Found: /
|
||||||
|
[WARNING][2025-08-11 10:51:01,115][log.py:253]Not Found: /
|
||||||
|
[WARNING][2025-08-11 10:51:01,229][log.py:253]Not Found: /favicon.ico
|
||||||
|
[WARNING][2025-08-11 10:51:01,234][log.py:253]Not Found: /favicon.ico
|
||||||
|
[WARNING][2025-08-11 10:54:44,310][log.py:253]Not Found: /
|
||||||
|
[WARNING][2025-08-26 15:32:42,233][log.py:253]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-08-26 15:32:42,307][log.py:253]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-08-26 15:32:54,673][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-08-29 23:36:57,981][log.py:253]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-08-29 23:36:58,051][log.py:253]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-08-29 23:37:10,653][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-11-06 15:52:18,257][log.py:253]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-11-06 15:52:18,312][log.py:253]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-11-06 15:52:27,134][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-11-06 16:03:42,332][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
[WARNING][2025-11-17 16:45:54,859][log.py:253]Unauthorized: /api/system/getInfo
|
||||||
|
[WARNING][2025-11-17 16:45:54,926][log.py:253]Unauthorized: /api/system/logout
|
||||||
|
[WARNING][2025-11-17 16:46:10,800][backend.py:91]Caught LDAPError looking up user: SERVER_DOWN({'result': -1, 'desc': "Can't contact LDAP server", 'ctrls': []})
|
||||||
|
|||||||
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.
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.
@@ -1,37 +1,37 @@
|
|||||||
Django~=5.2.1
|
Django~=5.2.8
|
||||||
django-auth-ldap~=5.2.0
|
django-auth-ldap~=5.2.0
|
||||||
asgiref~=3.8.1
|
asgiref~=3.10.0
|
||||||
sqlparse~=0.5.3
|
sqlparse~=0.5.3
|
||||||
# 基础包
|
# 基础包
|
||||||
mysqlclient~=2.2.7
|
mysqlclient~=2.2.7
|
||||||
orjson~=3.10.18
|
orjson~=3.11.4
|
||||||
lxml~=5.4.0
|
lxml~=6.0.2
|
||||||
typing_extensions~=4.13.2
|
typing_extensions~=4.15.0
|
||||||
# 必须whl安装的包
|
# 必须whl安装的包
|
||||||
python-ldap~=3.4.4
|
python-ldap~=3.4.4
|
||||||
# 项目包
|
# 项目包
|
||||||
django-environ~=0.12.0
|
django-environ~=0.12.0
|
||||||
django-ninja~=1.4.1
|
django-ninja~=1.4.5
|
||||||
pydantic~=2.11.4
|
pydantic~=2.12.4
|
||||||
pydantic-core~=2.33.2
|
pydantic-core~=2.41.5
|
||||||
django-ninja-extra~=0.30.0
|
django-ninja-extra~=0.30.2
|
||||||
django-ninja-jwt~=5.3.7
|
django-ninja-jwt~=5.4.0
|
||||||
django-tinymce~=4.1.0
|
django-tinymce~=5.0.0
|
||||||
PyJWT~=2.10.1
|
PyJWT~=2.10.1
|
||||||
cryptography~=45.0.3
|
cryptography~=45.0.6
|
||||||
ninja-schema~=0.14.2
|
ninja-schema~=0.14.3
|
||||||
user-agents~=2.2.0
|
user-agents~=2.2.0
|
||||||
numpy~=2.2.5
|
numpy~=2.3.4
|
||||||
docxtpl~=0.20.0
|
docxtpl~=0.20.1
|
||||||
python-docx~=1.1.2
|
python-docx~=1.2.0
|
||||||
Jinja2~=3.1.6
|
Jinja2~=3.1.6
|
||||||
django-redis~=5.4.0
|
django-redis~=6.0.0
|
||||||
pandas~=2.2.3
|
pandas~=2.3.3
|
||||||
beautifulsoup4~=4.13.4
|
beautifulsoup4~=4.14.2
|
||||||
python-dateutil~=2.9.0.post0
|
python-dateutil~=2.9.0.post0
|
||||||
redis~=6.1.0
|
redis~=7.0.1
|
||||||
waitress~=3.0.2
|
waitress~=3.0.2
|
||||||
django-shortuuidfield~=0.1.3
|
django-shortuuidfield~=0.1.3
|
||||||
lizard~=1.17.30
|
lizard~=1.19.0
|
||||||
Pygments~=2.19.1
|
Pygments~=2.19.2
|
||||||
pydash~=8.0.5
|
pydash~=8.0.5
|
||||||
4
test.py
4
test.py
@@ -1,4 +0,0 @@
|
|||||||
import pydash as _
|
|
||||||
|
|
||||||
res = _.compact([1, 2, 3, 0, False, ""])
|
|
||||||
print(res)
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#os.system(command)
|
|
||||||
import os,time
|
|
||||||
os.system("git pull")
|
|
||||||
os.system("pause")
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#os.system(command)
|
|
||||||
import os,time
|
|
||||||
comment = input('请输入提交的标记名称:')
|
|
||||||
os.system("git add .")
|
|
||||||
os.system(f"git commit -m {comment}")
|
|
||||||
os.system("git push origin main --force")
|
|
||||||
os.system("pause")
|
|
||||||
Reference in New Issue
Block a user