• 多对多作为外键,getset方法实现


    get_class.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div><a href="/add_classes.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.title }}</td>
                <td>{% for item in row.m.all %}
                    <span>{{ item.name }}</span>
                    {% endfor %}</td>
            <td><a href="del_classes.html?nid={{ row.id }}">删除</a>
                |
            <a href="edit_classes.html?nid={{ row.id }}">修改</a>
                |
                <a href="set_teacher.html?nid={{ row.id }}">分配老师</a>
            </td>
            </tr>
        {% endfor %}
        </tbody>
    </table></div>
    </body>
    </html>

    url.py

    from django.conf.urls import url
    from django.contrib import admin
    from app.views import classes
    from app.views import student
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^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'^set_teacher.html$', classes.set_teacher),
    
        url(r'^student$', student.get_student),
        url(r'^add_student$', student.add_student),
        url(r'^del_student$', student.del_student),
        url(r'^edit_student$',student.edit_student),
    
    ]

    class.py

    from django.shortcuts import render
    from django.shortcuts import redirect
    from app import models
    def get_classes(request):
    
        cls_list=models.Classes.objects.all()
    
        return render(request,'get_classes.html',{'cls_list':cls_list})
    
    def add_classes(request):
        if request.method == 'GET':
            return render(request, 'add_classes.html')
        elif request.method == 'POST':
            title1=request.POST.get("title")
            models.Classes.objects.create(title=title1)
            return redirect('/classes.html')
             #url路径不是html文件
    
    def del_classes(request):
        nid=request.GET.get("nid")
        models.Classes.objects.filter(id=nid).delete()
        return redirect("/classes.html")
    
    def edit_classes(request):
        if request.method=="GET":
            nid=request.GET.get('nid')
            obj=models.Classes.objects.filter(id=nid).first()
            return render(request,'edit_classes.html',{'obj':obj})
        elif request.method=="POST":
            nid = request.GET.get('nid')
            title=request.POST.get('abc')
            models.Classes.objects.filter(id=nid).update(title=title)
            return redirect("/classes.html")
    def set_teacher(request):
        if request.method=='GET':
            nid=request.GET.get('nid')
            cls_obj=models.Classes.objects.filter(id=nid).first()
            cls_teacher_list=cls_obj.m.all().values_list('id','name')
            id_list=list(zip(*cls_teacher_list))[0] if list(zip(*cls_teacher_list)) else []
            all_teacher_list=models.Teacheres.objects.all()
            return render(request,'set_teacher.html',
                          {'id_list':id_list,
                           'all_teacher_list':all_teacher_list,
                           'nid':nid
                                                      })
        elif request.method=='POST':
            nid=request.GET.get('nid')
            ids=request.POST.getlist('teacher_ids')
            obj=models.Classes.objects.filter(id=nid).first()
            obj.m.set(ids)
            return redirect("/classes.html")

    set_teacher.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {% csrf_token %}
    <form action="set_teacher.html?nid={{ nid }}" method="POST">
    <select name="teacher_ids" id="" multiple size="10">
    {#<select name="" id="">#}
        {% for item in all_teacher_list %}
            {% if item.id in id_list %}
                <option value="{{ item.id }}"selected="selected">{{ item.name }}</option>
            {% else %}
            <option value="{{ item.id }}">{{ item.name }}</option>
    {% endif %}
    {% endfor %}
    
    </select>
        <input type="submit"value="提交">
    </form>
    </body>
    </html>
  • 相关阅读:
    [Android开发]cocos2dx工程中接入支付宝sdk
    cocos2dx android SDK接入总结
    Cocos2d-vs避免过长编译的小技巧
    math.h里的数学计算公式介绍
    Cocos Code IDE入门指南
    kbengine引擎的安装
    游戏服务端pomelo完整安装配置过程
    cocos2d-x 两个场景间进行传参数
    cocos2d-x 设置全局可变变量
    如何将cocos2d-x项目打包成一个.exe
  • 原文地址:https://www.cnblogs.com/wfl9310/p/9575220.html
Copyright © 2020-2023  润新知