适配django4.2

This commit is contained in:
yangjian 2024-10-17 13:51:14 +08:00
parent 14a54a6f96
commit df6eccfac3
7 changed files with 164 additions and 37 deletions

View File

@ -138,6 +138,7 @@ else:
}
}
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
# Password validation
# https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators

View File

@ -0,0 +1,28 @@
# Generated by Django 4.2.16 on 2024-10-17 13:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app_admin', '0008_useroptions'),
]
operations = [
migrations.AlterField(
model_name='emaiverificationcode',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='registercode',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='useroptions',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -0,0 +1,23 @@
# Generated by Django 4.2.16 on 2024-10-17 13:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app_api', '0003_appusertoken'),
]
operations = [
migrations.AlterField(
model_name='appusertoken',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='usertoken',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -0,0 +1,88 @@
# Generated by Django 4.2.16 on 2024-10-17 13:11
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app_doc', '0040_auto_20220311_1600'),
]
operations = [
migrations.AlterField(
model_name='attachment',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='doc',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='dochistory',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='docshare',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='doctag',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='doctemp',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='image',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='imagegroup',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='mycollect',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='project',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='projectcollaborator',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='projectreport',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='projectreportfile',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='projecttoc',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
migrations.AlterField(
model_name='tag',
name='id',
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
),
]

View File

@ -9,8 +9,7 @@ from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import staleness_of
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.utils import ChromeType
from webdriver_manager.chrome import ChromeDriverManager,ChromeType
from django.conf import settings
from django.utils.translation import gettext_lazy as _
import sys
@ -66,7 +65,10 @@ def __get_pdf_from_html(path: str, timeout: int, install_driver: bool, print_opt
# 使用指定的chromedriver
if settings.CHROMIUM_DRIVER_PATH is not None:
driver = webdriver.Chrome(executable_path=settings.CHROMIUM_DRIVER_PATH,options=webdriver_options)
from selenium.webdriver.chrome.service import Service
# 创建 Service 对象
service = Service(executable_path=settings.CHROMIUM_DRIVER_PATH)
driver = webdriver.Chrome(service=service, options=webdriver_options)
# 使用默认的chromedriver
else:
driver = webdriver.Chrome(options=webdriver_options)
@ -74,7 +76,8 @@ def __get_pdf_from_html(path: str, timeout: int, install_driver: bool, print_opt
driver.get(path)
try:
WebDriverWait(driver, timeout).until(staleness_of(driver.find_element_by_tag_name('html')))
from selenium.webdriver.common.by import By
WebDriverWait(driver, timeout).until(staleness_of(driver.find_element(By.TAG_NAME, 'html')))
except TimeoutException:
calculated_print_options = {
'landscape': False,

View File

@ -40,7 +40,6 @@ def validate_title(title):
return new_title
# 导出MD文件压缩包
@logger.catch()
class ReportMD():
def __init__(self,project_id):
# 查询文集信息
@ -240,7 +239,6 @@ class ReportMdBatch():
# 导出EPUB
@logger.catch()
class ReportEPUB():
def __init__(self,project_id):
self.project = Project.objects.get(id=project_id)
@ -674,7 +672,6 @@ class ReportEPUB():
# 导出PDF
@logger.catch()
class ReportPDF():
def __init__(self,project_id,user_id):
# 查询文集信息
@ -997,18 +994,3 @@ class ReportDocx():
with open(temp_file_path, 'a+', encoding='utf-8') as htmlfile:
htmlfile.write(self.doc_str + self.content_str + "</body></html>")
if __name__ == '__main__':
# app = ReportMD(
# project_id=7
# )
# app.work()
# app = ReportEPUB(project_id=20)
# app.work()
app = ReportPDF(project_id=20)
app.work()
# app = ReportDocx(project_id=20)
# app.work()

View File

@ -1,18 +1,20 @@
django==2.2.*
beautifulsoup4==4.8.2
django==4.2.*
beautifulsoup4==4.12.3
lxml
pillow>=7.1.0,<10.0
loguru==0.4.1
importlib-metadata==4.7.1
djangorestframework==3.11.2
requests==2.24.0
pillow>=10.1
loguru==0.7.2
importlib-metadata==8.5.0
djangorestframework==3.15.2
requests==2.32.3
whoosh==2.7.4
django-haystack==3.1.1
Markdown==3.3.3
django-haystack==3.3.0
Markdown==3.7
jieba==0.42.1
mammoth==1.4.13
markdownify==0.6.0
selenium==3.141.0
webdriver_manager==3.3.0
PyYAML==6.0.1
django-cors-headers>=3.10.0
mammoth==1.8.0
markdownify==0.13.1
selenium==4.25.0
webdriver_manager==4.0.2
PyYAML==6.0.2
qiniu==7.14.0
mysqlclient
django-cors-headers==4.4.0