博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django 多对多 增 删 改 查
阅读量:4953 次
发布时间:2019-06-12

本文共 4984 字,大约阅读时间需要 16 分钟。

一、通过url方式实现多对多的:增加,删除,编辑

代码目录:

urls.py

"""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

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

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

    
Title
{% for row in cls_list %}
{% endfor %}
ID 班级 分配老师 操作
{
{ row.id }}
{
{ row.titile }}
{% for cls in row.m.all %} {
{ cls.name }} {% endfor %}
删除 | 编辑

添加功能

add_teachers.html

    
Title
{% csrf_token %}

编辑功能

edit_teachers.html

    
Title
{% csrf_token %}

 

转载于:https://www.cnblogs.com/nulige/p/6550789.html

你可能感兴趣的文章
HDU6198 number number number
查看>>
HDU6438 Buy and Resell
查看>>
HDU6446 Tree and Permutation
查看>>
HDU6201 transaction transaction transaction
查看>>
HDU6203 ping ping ping
查看>>
前端小笔记
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>
初学差分约束
查看>>
HEVC编码学习(一)HM配置
查看>>
通过Spark SQL关联查询两个HDFS上的文件操作
查看>>
DataTable和 DataRow的 区别与联系
查看>>
检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
查看>>
mysql数据库中数据类型
查看>>
Fireworks基本使用
查看>>
两台电脑间的消息传输
查看>>
Linux 标准 I/O 库
查看>>
.net Tuple特性
查看>>