Skip to content

fix: rebuild problem mappings on paragraph edit instead of writing removed fields - #7154

Open
iuiu-py wants to merge 1 commit into
1Panel-dev:v2from
iuiu-py:fix/paragraph-edit-problem-list
Open

iuiu-py wants to merge 1 commit into
1Panel-dev:v2from
iuiu-py:fix/paragraph-edit-problem-list

Conversation

@iuiu-py

@iuiu-py iuiu-py commented Sep 22, 2026

Copy link
Copy Markdown

问题

  • 段落编辑 ParagraphSerializers.Operate.editproblem_list 分支仍是 v1 遗留代码:直接以 paragraph_id/document_id 查询并构造 Problem,而这些字段在模型与迁移中早已不存在,公开 REST API PUT .../paragraph/{id} 携带 problem_list 时必然 FieldError 500。创建路径(Create.save)已迁移为 Problem + ProblemParagraphMapping,编辑路径未同步。

修复

  • 与创建路径对齐:先解除该段落的问题映射(Problem 本体保留,可能被其他段落复用),再通过 ProblemParagraphManage 复用同内容问题并重建映射。
  • 恢复创建/编辑的 API 对称性(GET one 返回 problem_list、POST 接受 problem_list、PUT 不再 500)。

…moved fields

The edit path's problem_list branch still wrote Problem rows with
paragraph_id/document_id, columns that no longer exist on the model, so
any PUT carrying problem_list failed with FieldError while the create path
already used Problem + ProblemParagraphMapping. Align edit with create:
replace the paragraph's mappings, reusing existing same-content problems.

Restores create/edit symmetry for the public REST API.

Signed-off-by: wangzifei <wangzifei@cit.group.hk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant