วิธีแก้ไขปัญหา Custom checkbox ติดอยู่ตลอดเมื่อสร้าง DocType ใหม่ใน Frappe 16 แม้เปิด Developer Mode แล้ว - ต้องใช้ bench set-config แทนการแก้ไข JSON

เมื่อสร้าง DocType ใหม่ใน Frappe 16 แล้วพบว่า checkbox "Custom?" ติดเลือกอยู่ตลอดและไม่สามารถยกเลิกได้ แม้จะเปิด Developer Mode แล้วก็ตาม บทความนี้จะอธิบายสาเหตุและวิธีแก้ไขที่ถูกต้อง
เมื่อคลิก "Create New DocType" ใน Frappe 16 จะพบว่า checkbox "Custom?" ถูกเลือกไว้และไม่สามารถยกเลิกได้ (read-only) แม้ว่าจะตั้งค่า developer_mode: 1 ใน site_config.json แล้วก็ตาม

{
"db_name": "_139d3e8086da46e7",
"developer_mode": 1,
"maintenance_mode": 0
}แม้จะตั้งค่า developer_mode: 1 แล้ว แต่ปัญหายังคงอยู่
ใน Frappe 16 มีการตรวจสอบ 2 เงื่อนไขก่อนอนุญาตให้สร้าง Standard DocType (non-custom):
// จาก frappe/core/doctype/doctype/doctype_list.js
let non_developer =
frappe.session.user !== "Administrator" || !frappe.boot.developer_mode;เงื่อนไขคือ:
frappe.boot.developer_mode ต้องเป็น trueเมื่อแก้ไข site_config.json โดยตรง (manual edit) ค่า config จะถูก cache ไว้ใน Redis และไม่ถูก update ทำให้ frappe.boot.developer_mode ยังคงเป็น 0 หรือ undefined
# ตั้งค่า developer_mode ผ่าน CLI
bench set-config -g developer_mode 1คำสั่งนี้จะ:
site_config.jsonfrappe.boot.developer_mode ถูกตั้งค่าอย่างถูกต้องหากแก้ไข JSON โดยตรงไปแล้ว ให้ clear cache:
bench --site [sitename] clear-cachebench --site [sitename] console>>> frappe.conf.developer_mode
1bench set-config เสมอdeveloper_mode: 0 ใน common config อาจ override site config ได้cat ~/frappe-bench/sites/common_site_config.json | grep developerถ้าพบ "developer_mode": 0 ให้แก้ไขด้วย:
bench set-config -g developer_mode 1บทความนี้ได้แสดงวิธีแก้ปัญหา "Custom?" checkbox ที่ติดอยู่ตลอดใน Frappe 16:
site_config.json โดยตรงไม่ได้ clear cache ทำให้ frappe.boot.developer_mode ไม่ถูก updatebench set-config -g developer_mode 1 แทนการแก้ไข JSONfrappe/core/doctype/doctype/doctype_list.js