一、通过url方式实现多对多的:增加,删除,编辑
代码目录:
urls.py
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
"""django_one URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:Function views 1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r\'^$\', views.home, name=\'home\')
Class-based views 1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r\'^$\', Home.as_view(), name=\'home\')
Including another URLconf 1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r\'^blog/\', include(\'blog.urls\'))
"""from django.conf.urls import urlfrom django.contrib import adminfrom app01.views import classesfrom app01.views import studentsfrom app01.views import teachersurlpatterns = [ url(r\'^admin/\', admin.site.urls),
url(r\'^get_classes.html$\', classes.get_classes),
url(r\'^add_classes.html$\', classes.add_classes),
url(r\'^del_classes.html$\', classes.del_classes),
url(r\'^edit_classes.html$\', classes.edit_classes),
url(r\'^get_students.html$\', students.get_students),
url(r\'^add_students.html$\', students.add_students),
url(r\'^del_students.html$\', students.del_students),
url(r\'^edit_students.html$\', students.edit_students),
url(r\'^get_teachers.html$\', teachers.get_teachers),
url(r\'^add_teachers.html$\', teachers.add_teachers),
url(r\'^del_teachers.html$\', teachers.del_teachers),
url(r\'^edit_teachers.html$\', teachers.edit_teachers),
] |
models.py
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
from django.db import models# Create your models here.class Classes(models.Model): """
班级表,男
"""
titile = models.CharField(max_length=32)
m = models.ManyToManyField("Teachers")
class Teachers(models.Model): """
老师表,女
"""
name = models.CharField (max_length=32)
"""cid_id tid_id 1 1
1 2
6 1
1000 1000
"""# class C2T(models.Model):# cid = models.ForeignKey(Classes)# tid = models.ForeignKey(Teachers)class Student(models.Model): username = models.CharField(max_length=32)
age = models.IntegerField()
gender = models.BooleanField()
cs = models.ForeignKey(Classes)
|
teachers.py
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
from django.shortcuts import renderfrom django.shortcuts import redirectfrom app01 import modelsdef get_teachers(request): cls_list = models.Classes.objects.all()
return render(request,\'get_teachers.html\',{\'cls_list\':cls_list})
def add_teachers(request): if request.method == "GET":
teachers_list = models.Teachers.objects.all()
return render(request, \'add_teachers.html\',{\'teachers_list\':teachers_list})
elif request.method == "POST":
nid = request.POST.get(\'titile\')
# [1,2,3,4,]
teachers_id = request.POST.getlist(\'teachers_id\')
# 10
obj = models.Classes.objects.create(titile = nid)
# 10 1
# 10 2
# 10 3
# 10 4
obj.m.add(*teachers_id)
return redirect(\'get_teachers.html\')
def del_teachers(request): nid = request.GET.get(\'nid\')
models.Classes.objects.filter(id=nid).delete()
return redirect(\'get_teachers.html\')
def edit_teachers(request): if request.method == "GET":
nid = request.GET.get(\'nid\')
obj = models.Classes.objects.filter(id=nid).first()
teachers_list = models.Teachers.objects.all()
return render(request,\'edit_teachers.html\',{\'nid\':nid,\'obj\':obj,\'teachers_list\':teachers_list})
elif request.method == "POST":
n = request.POST.get(\'nid\')
t = request.POST.get(\'titile\')
teachers_id = request.POST.getlist(\'teachers_id\')
obj = models.Classes.objects.filter(id=n).update(
id=n,
titile=t,
)
obj.m.add(*teachers_id)
return redirect(\'get_teachers.html\')
|
添加功能
get_teachers.html
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
<a href="/add_teachers.html">添加</a>
</div>
<div>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>班级</th>
<th>分配老师</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for row in cls_list %}
<tr>
<td>{{ row.id }}</td>
<td>{{ row.titile }}</td>
<td>
{% for cls in row.m.all %}
{{ cls.name }}
{% endfor %}
</td>
<td>
<a href="/del_teachers.html?nid={{ row.id }}">删除</a>
|
<a href="/edit_teachers.html?nid={{ row.id }}">编辑</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</body>
</html>
|
添加功能
add_teachers.html
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="add_teachers.html" method="POST">
{% csrf_token %}
<p><input type="text" name="titile" placeholder="班级" /></p>
<p>
<select name="teachers_id" multiple="multiple" >
{% for teachers in teachers_list %}
<option value="{{ teachers.id}}">{{ teachers.name }}</option>
{% endfor %}
</select>
</p>
<input type="submit" value="提交" />
</form>
</body>
</html>
|
编辑功能
edit_teachers.html
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/edit_teachers.html?nid={{ nid }}" method="POST">
{% csrf_token %}
<p><input type="text" name="titile" placeholder="班级" value="{{ obj.titile }}"/></p>
<p>
<select name="teachers_id" multiple="multiple" >
{% for teachers in teachers_list %}
<option value="{{ teachers.id}}">{{ teachers.name }}</option>
{% endfor %}
</select>
</p>
<input type="submit" value="提交">
</form>
</body>
</html>
|