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>
    

      

      

        

  • 相关阅读:
    spark连接MongoDB
    idea+scala+spark遇到的一些问题
    linux环境变量的配置
    sqoop的导入导出
    hive中一些常用的sql语句
    Unity 插件制作笔记(持续更新)
    linux-shutdown命令说明
    linux中的redis缓存服务器
    IceScrum敏捷开发工具的安装文档-官方最新版
    PHP设计模式系列
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9756826.html
Copyright © 2011-2022 走看看