zoukankan      html  css  js  c++  java
  • 作者和书籍的增删改查 多对多

    主要内容;

    1  author类的属性操作

      author_list = author.objects.all()       获取所有的作者的对象列表

      模板语言的for循环:{% for author in author_list %}

      author.id                                获取id属性

      author.name                          获取name属性

      author.books                         获取操作的对象, 是一个桥梁, 用于设置两者之间的对应关系

      author.books.all()                 取到所有有关书籍的对象列表

      模板语言的if判断:

       {% for book in author.books.all %}

        {% if  forloop.last%}  {{ book.titlte}}

        {% else %}                {{book.title}},

        {%endif%}

       {%end for%}

    2  多对多的增操作

      对于select标签获取多个值要采用getlist

      book_ids = request.POST.getlist('book_ids')

      new_obj = author.objects.create(name='新值')

      new_obj.books.add(*book_ids)          /               new_obj.books.set([book_ids])

    3 多对多的删操作:

      删除多个对象: Author.objects.filter(id= 'delete_id').delete()

      删除单个对象: book.obj.delete()

    4 多对多的编辑操作

      用到select标签的mutiple复用属性

      <select name="book_id" multiple>
            {% for book in book_list %}
                {% if book in edit_author.books.all %}
                    <option selected value="{{ book.id }}">{{ book.title }}</option>
                {% else %}
                    <option value="{{ book.id }}">{{ book.title }}</option>
                {% endif %}
            {% endfor %}
        </select>
    

      

      

        

  • 相关阅读:
    JPEG compression
    GPU编程库
    亚马逊AWS服务器CentOS/Linux系统Shell安装Nginx及配置自启动
    如何查看mac系统是32位还是64位的操作系统
    mac解压7z格式文件
    vi中跳到文件的第一行和最后一行
    docker学习记录
    git 比较两个分支不同的commit
    meta property=og标签含义及作用
    php发现一个神奇的函数
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9756826.html
Copyright © 2011-2022 走看看