发布于2019-08-07 15:06 阅读(1334) 评论(0) 点赞(4) 收藏(3)
修改 views.py
@auth
def edit_teacher(request, nid):
if request.method == "GET":
obj = models.Teacher.objects.get(id=nid)
# 执行后返回元组,每个元组包含传递给values_list() 调用的字段的值
# obj_cls_list = obj.cls.all().values_list('id')
# 把元组中的第一个字段取出,组成列表
# id_list = list(zip(*obj_cls_list))[0]
# 通过 values_list 函数中直接设置 flat=True 返回列表
id_list = obj.cls.all().values_list('id', flat=True).order_by('id')
# print(id_list)
cls_list = models.Classes.objects.all()
return render(request, 'edit_teacher.html', {'obj': obj, 'id_list': id_list, 'cls_list': cls_list})
elif request.method == "POST":
name = request.POST.get('name')
cls_li = request.POST.getlist('cls')
# 更新操作
obj = models.Teacher.objects.get(id=nid)
obj.name = name
obj.save()
obj.cls.set(cls_li)
return redirect('/teacher.html')
添加 edit_teacher.html
{% extends "layout.html" %}
{% block css %}
{% endblock %}
{% block content %}
<h1>编辑老师</h1>
<form action="/edit_teacher-{{ obj.id }}.html" method="POST">
<input style="display: none" type="text" id="nid" value="{{ obj.id }}" />
<p>
老师姓名: <input type="text" name="name" value="{{ obj.name }}" />
</p>
<p>
班级:
<select name="cls" multiple>
<!-- 循环 cls_list -->
{% for row in cls_list %}
<!-- 判断 row.id 是否选中 -->
{% if row.id in id_list %}
<option value="{{ row.id }}" selected="selected">{{ row.caption }}</option>
{% else %}
<option value="{{ row.id }}">{{ row.caption }}</option>
{% endif %}
{% endfor %}
</select>
</p>
<input type="submit" value="提交">
</form>
{% endblock %}
{% block js %}
<script>
$(function () {
$('#menu_teacher').addClass('active');
})
</script>
{% endblock %}
修改 teacher.html
{% extends "layout.html" %}
{% block css %}
.tag{
display: inline-block;
padding: 5px;
border: 1px solid red;
background-color: lightpink;
cursor: pointer;
}
{% endblock %}
{% block content %}
<h1>老师列表</h1>
<div>
<a href="/add_teacher.html">添加</a>
</div>
<table border="1">
<thead></thead>
<tbody>
{% for dic in teacher_list.values %}
<tr>
<td>{{ dic.nid }}</td>
<td>{{ dic.name }}</td>
<td>
{% for c in dic.cls_list %}
<span class="tag" nid="{{ c.id }}">{{ c.caption }}</span>
{% endfor %}
</td>
<td>
<a href="edit_teacher-{{ dic.nid }}.html">编辑</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
{% block js %}
<script>
$(function () {
$('#menu_teacher').addClass('active');
})
</script>
{% endblock %}
修改 urls.py
# 注意这里需要 import re_path 来试用正则表达式
from django.urls import path, re_path
urlpatterns = [
# 添加下面几个
path('teacher.html', views.handle_teacher),
path('add_teacher.html', views.add_teacher),
re_path('edit_teacher-(\d+).html', views.edit_teacher),
]
作者:我是女王
链接:https://www.pythonheidong.com/blog/article/11457/d74fb1a120eaed4ebb9b/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!