一、通过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 Configuration
The `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 url
from django.contrib import admin
from app01.views import classes
from app01.views import students
from app01.views import teachers
urlpatterns = [
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 render
from django.shortcuts import redirect
from app01 import models
def 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
>
|