feat(documents): 增强上传反馈与状态展示

This commit is contained in:
2026-05-30 00:29:03 +08:00
parent 905067277a
commit c2b3a3b4f7
7 changed files with 91 additions and 9 deletions

View File

@@ -3,14 +3,24 @@ from pathlib import Path
from django import forms
from apps.scenarios.services import ScenarioNotFound, get_scenario
from apps.scenarios.services import list_scenarios
SUPPORTED_EXTENSIONS = {".txt", ".md", ".pdf", ".docx"}
class DocumentUploadForm(forms.Form):
scenario_id = forms.CharField(label="场景")
# 使用 ChoiceField 让表单自己维护场景选项,
# 这样模板、校验和后续扩展都能围绕一个入口完成。
scenario_id = forms.ChoiceField(label="场景", choices=())
file = forms.FileField(label="文件")
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["scenario_id"].choices = [
(scenario["id"], scenario["name"])
for scenario in list_scenarios()
]
def clean_scenario_id(self):
scenario_id = self.cleaned_data["scenario_id"]
try: