函数跳函数
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语句,模板中的到数据,可以展示。
- 如果在if语句中返回某个页面,那么模板中就会取不到课程的值。因为在函数中并没有取值的操作。