Menu

Friday, January 29, 2021

[OpenEDX] วิธีแก้ไขข้อผิดพลาด "DoesNotExist: Site matching query does not exist."
[OpenEDX] How to Fix "DoesNotExist: Site matching query does not exist."

กรณีที่เรายังไม่ได้สร้าง Site ที่ชื่อตรงกับ domain ของเรา แล้วเราไปลบ Site ที่มี id เป็น 1 ออกจาก database เวลาเรียกหน้าเว็บจะเกิด error ดังนี้
DoesNotExist: Site matching query does not exist.
เนื่องจากชื่อ domain ของเราจะถูกดึงมาจาก Request header แล้วนำไปเทียบกับ Site ใน database

เมื่อระบบหา Site ที่ตรงกันไม่ได้ ระบบจึงใช้ค่า SITE_ID=1 ใน /edx/app/edxapp/edx-platform/lms/envs/common.py เป็นค่าตั้งต้น

หลังจากนั้น ระบบจะนำค่า SITE_ID ไปหา Site ที่มี id ตรงกัน

เมื่อระบบไม่สามารถหา Site ได้ จึงได้ค่าเป็น None และทำให้เกิดการแจ้งข้อผิดพลาดข้างต้น

วิธีแก้ไข คือ แก้ไข SITE_ID ใน /edx/app/edxapp/edx-platform/lms/envs/common.py เป็น ID ของ Site ที่ต้องการให้เป็นค่าตั้งต้น ถ้าหากยังไม่มี Site เลย ให้ทำการสร้าง Site ก่อน

No comments:

Post a Comment