fix(出题页): 改了挑战点保存,提示「保存好了」其实一条都没存上

出题页发请求时漏了 challenges 这个字段,后端又把「不带」当成「不动原来的」,
所以改动被静默丢掉。现在出题页带上它,接口也改成必须带(null 是清空),
以后再漏传会直接报错,不会再悄悄丢。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-26 14:15:04 +08:00
1 parent 195069450f
commit 6b5ca745bb
3 files changed
+8 -7

No files matched your search

+3 -3
View File
@@ -1004,10 +1004,10 @@ export const createProblemRequestSchema = z.object({
flowchartHint: z.string().nullable().default(null),
astRules: astRulesSchema.nullable().default(null),
/**
* 不带这个键 = 不动原来的挑战。上线那一刻浏览器里还开着旧版出题页,它保存时不带挑战,
* 给个默认 null 的话一保存就把挑战清了;null 才是「清空」
* 必须带:null 是「清空」。不给默认值是故意的 —— 前端漏传这个键的话,给默认 null
* 会一保存就把挑战清了,而「不带 = 不动」又会让出题页改的挑战静默存不上
*/
challenges: challengeInputsSchema.nullable().optional(),
challenges: challengeInputsSchema.nullable(),
// order_sensitive 缺省补 false —— 与旧后端 SQLConfigSerializer 的
// `BooleanField(default=False)` 一致
sqlConfig: sqlConfigSchema