在 Open edX Xblock 中获取应用程序参数

Get application parameter inside an Open edX Xblock

我正在开发 OpenEdx Xblock。
我需要在所有用户和所有 xblock 之间保持价值。 该值最终可能会更改,但只能由服务器管理员更改。
我的想法是在 cms.env.json 中创建新参数,并在我的 xblock 中检索该参数。我还没有找到关于这个主题的文档。

正确的方法是将设置存储在具有以下范围的 XBlock 字段中:

BlockScope = TYPE
UserScope = NONE

(请参阅有关 xblock 作用域的文档:http://edx.readthedocs.io/projects/xblock/en/latest/fields.html#xblock.fields.Scope

不幸的是,这样的范围不存在...所以你只能使用 django 设置。如果您希望将此设置存储在 *.env.json 文件中,那么您可以通过以下方式从 xblock 中读取值:

from django.conf import settings
yourfeature = settings.FEATURES.get('yourfeature', 'defaultvalue')

不要忘记将此特征值同时存储在 lms.env.jsoncms.env.json 中! (前提是您在 LMS 和 CMS 中都需要此功能)