在html页面

时间:2015-06-20 17:16:44

标签: python html django mongodb twitter-bootstrap

我正在设计一个名为 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'] })

这样做的任何帮助。

0 个答案:

没有答案