zoukankan      html  css  js  c++  java
  • django 多对多 增 删 改 查

     

     

    一、通过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>
  • 相关阅读:
    OSCP Learning Notes Buffer Overflows(3)
    OSCP Learning Notes Buffer Overflows(5)
    OSCP Learning Notes Exploit(3)
    OSCP Learning Notes Exploit(4)
    OSCP Learning Notes Exploit(1)
    OSCP Learning Notes Netcat
    OSCP Learning Notes Buffer Overflows(4)
    OSCP Learning Notes Buffer Overflows(1)
    OSCP Learning Notes Exploit(2)
    C++格式化输出 Learner
  • 原文地址:https://www.cnblogs.com/zjltt/p/7462590.html
Copyright © 2011-2022 走看看