多对多表格的Ajax实现
老师和班级的关系使用如下表格记录:
id,class_id,teacher_id
现在需要将teacher,class和上述的关系表全部链接起来。
select teacher.id as tid,teacher.name,class.title from teacher
left join teacher2class on teahcer.id=teacher2class.teacher_id
left join class on class.id=teacher2class.class_id
然后定义展示函数:
def teachers(request):
teacher_list = sqlhelper.get_list("""
上面的SQL语句
""",[])
这样,每个老师会有多行数据。下面将列表进行改造,每个教师一行,班级名称包含多项。
result={}
for row in teacher_list:
tid = row['tid']
if tid in result:
result[tid]['titles'].append(row['title'])
else:
result[tid] = {'tid':row['tid'],'name'=row['name'],'titles':row['title']}
取最后一个自增id,pymysql的lastrowid
request.POST.getlist('name'),取多选下拉框的值
多对多选择的时候,左右两个框之间来回移动。
request的使用方法:
request.GET.getlistqu取多个值
request.POST
request.method
return的使用方法:
return render()
return HttpResponse()
return redirect()
模板语言中可以使用的方法:
for
if
索引的使用方法.用点取值
{{}}单个值得取值方法
模板的渲染是在后台执行,然后发送给浏览器。
1、js序列化。
2、阻止默认事件发生的方法
(1)<a><onclick='return func();'></a>。此时,如果函数返回false,则阻止默认事件的发生;如果返回true,则按照原有默认顺序执行。
(2)<a id></a>