首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在openedx中通过外部脚本定义课程

在openedx中通过外部脚本定义课程
EN

Stack Overflow用户
提问于 2016-06-01 05:11:03
回答 1查看 135关注 0票数 2

我正在尝试插入一个课程模板(模板是在edx工作室上创建课程所需的强制性细节,以及一些分级设置)。我希望通过外部脚本插入课程模板,该脚本将对安装openedx的服务器的数据库具有读/写权限。

我已经看过医生了,但他们似乎没有关于我的目标的任何信息。我尝试在openedx中插入一个过程,发现至少有一个MySQL表发生了更改,关联的MongoDB中的一些集合也发生了变化。但这几乎不是什么具体的东西。我会查看源代码,但这是一个很大的代码库。

我用的是山茱萸版本的openedx。

有人能告诉我如何做到这一点,或者至少告诉我我应该看哪一部分代码库吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-04 06:58:09

这就是你如何创建一个课程:

代码语言:javascript
复制
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属性)之后修改它,您将这样做:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37559902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档