美文网首页
函数跳函数

函数跳函数

作者: 上帝大人 | 来源:发表于2019-07-17 11:34 被阅读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语句,模板中的到数据,可以展示。

    • 如果在if语句中返回某个页面,那么模板中就会取不到课程的值。因为在函数中并没有取值的操作。

    相关文章

      网友评论

          本文标题:函数跳函数

          本文链接:https://www.haomeiwen.com/subject/jsfqlctx.html