我正在尝试插入一个课程模板(模板是在edx工作室上创建课程所需的强制性细节,以及一些分级设置)。我希望通过外部脚本插入课程模板,该脚本将对安装openedx的服务器的数据库具有读/写权限。
我已经看过医生了,但他们似乎没有关于我的目标的任何信息。我尝试在openedx中插入一个过程,发现至少有一个MySQL表发生了更改,关联的MongoDB中的一些集合也发生了变化。但这几乎不是什么具体的东西。我会查看源代码,但这是一个很大的代码库。
我用的是山茱萸版本的openedx。
有人能告诉我如何做到这一点,或者至少告诉我我应该看哪一部分代码库吗?
发布于 2016-07-04 06:58:09
这就是你如何创建一个课程:
from xmodule.modulestore.django import modulestore
from datetime import datetime
store.create_course(
"org", "num", "run", # course ID
1, # course creator user ID
# Set the start date of the course to the start of the year
fields={"start": datetime(2016, 1, 1)}
)看到fields参数了吗?这是新课程的属性可以定义的。可以定义的属性列表在模块:CourseFields中可用。在上面的示例中,我们定义了start属性,但是可以使用相同的方法定义其他字段。
如果您希望在创建课程属性(例如start属性)之后修改它,您将这样做:
from opaque_keys.edx.keys import CourseKey
course = store.get_course(CourseKey.from_string("course-v1:org+num+run"))
course.start = datetime.now()
course.save()请注意,这并不包括定义每门课程的评估。以编程方式定义这一点要复杂得多。通过查看从contentstore视图中查看,您可以更好地理解分级设置是如何定义的。正如我们所看到的,所有的分级信息都存储在一个CourseGradingModel中。您需要的方法是update_from_json。
https://stackoverflow.com/questions/37559902
复制相似问题