函数跳函数

2019-07-17  本文已影响0人  上帝大人

在函数中可以return redirect 到模板。也可以跳转到另一个函数中再次处理数据。

使用redirect(reverse(' 函数名 '引号不要忘,参数args= (arg1,arg2)或者kwargs = {'id':1,'number':2}))

例子:

def course(request):
    courseInfo = CourseInfo.objects.filter(cid=request.user.id).order_by("number", 'xingqi')
    if request.method=='POST':
        id = 1;
        for i in range(1,6):
            for j in range(1,8):
                courseinfo = courseInfo.get(id=id) 
                # 得到某个星期 某节课 这条数据  因为按照number 和 xingqi 排序了
                id += 1
                print(courseinfo.course)
                courseinfo.course = request.POST.get(str(i)+str(j))
                courseinfo.save()
        return redirect(reverse('course'))   # 函数跳函数 跳自己

    else:
        id = 1
        fontcourse = []  # 用来向前端发送数据
        for i in range(1,6):
            for j in range(1,8):
                courseinfo = courseInfo.get(id=id) 
                # 得到某个星期 某节课 这条数据  因为按照number 和 xingqi 排序了
                id += 1
                print(courseinfo.course)
                fontcourse.insert(id,courseinfo.course)
        return render(request,'course.html',locals())

将查看课程表和修改课程表都合并到了这个函数中,当查看课程表时,请求的类型不是POST所以执行else语句,获取数据库中的数据,放在列表中,供模板输出结果。
查看时可以进行更改,更改后提交,请求类型为POST,所以执行的时if语句,获取模板中的数据,写入数据库中,再次返回这个函数,请求类型不是POST,执行else语句,模板中的到数据,可以展示。

上一篇下一篇

猜你喜欢

热点阅读