我正在设计一个名为 display.html 的网页,以在网格视图中显示课程内容数据。 以下链接显示了我需要的http://www.prepbootstrap.com/bootstrap-theme/dark-admin/preview/bootstrap-grid.html类型的显示。 第一行将包含课程名称,第二行将包含子部分名称,依此类推。
我正在使用django python。我在views.py中编写了一个函数,用于从mongodb中检索数据。 该函数返回一个字典,其中包含课程名称的映射,包括章节名称列表,章节名称和子章节名称列表,等等,并在网页display.html上呈现,但我无法正确显示数据html页面。
我的 views.py 功能是:
def get_course_structure(course_lst):
final_data = dict()
connection = MongoClient("server_ip", port)
database_name = 'edxapp'
database = connection[database_name]
cursor = database.modulestore.aggregate([{ "$match": {"_id.course":"CS000", "_id.category":"chapter"} },
{ "$project": { "metadata": 1, "definition": 1 } } ])
chapter = []
lst_chapter = []
for data in cursor:
chapter.append(data)
lst_chapter.append(data['metadata']['display_name'])
#print "CS000", lst_chapter
final_data= {}
final_data["CS000"] = lst_chapter
#for data in chp:
# print data['metadata']['display_name']
sequential = []
for data in chapter:
lst_children = data['definition']['children']
#print lst_children
lst_seq = []
for child in lst_children:
child = child.split('/')
#print child[5]
cur = database.modulestore.aggregate([{ "$match": {"_id.name":child[5]} },
{ "$project": { "metadata": 1, "definition": 1 } } ])
for rec in cur:
#print rec
sequential.append(rec)
lst_seq.append(rec['metadata']['display_name'])
#print data['metadata']['display_name'], lst_seq
final_data[data['metadata']['display_name']] = lst_seq
#for data in sequential:
# print data, "\n"
vertical = []
for data in sequential:
lst_children = data['definition']['children']
lst_ver = []
for child in lst_children:
child = child.split('/')
cur = database.modulestore.aggregate([{ "$match": {"_id.name":child[5]} },
{ "$project": { "metadata": 1, "definition": 1 } } ])
for rec in cur:
vertical.append(rec)
lst_ver.append(rec['metadata']['display_name'])
#print data['metadata']['display_name'], lst_ver
final_data[data['metadata']['display_name']] = lst_ver
#for data in vertical:
# print data, "\n"
for key in final_data:
print key, final_data[key]
return final_data
和
def get_dashboard(request):
courses_lst = get_student_enrolled_courses(request.GET['student_id'])
course_data = get_course_structure(courses_lst)
return render(request,'mis/display.html', {'course_data':course_data, 'student_id':request.GET['student_id'] })
这样做的任何帮助。