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>
    

      

      

        

  • 相关阅读:
    HTML新解
    关于EF4.1更新数据后的显示问题PagedList
    SQL2008中的XML字段操作,与命名空间相关
    64位Win7+iis7下发布MVC3 web项目
    蓝屏、异常关机操成的 未能加载文件或程序集“....”或它的某一个依赖项。参数错误。
    FreeWriting_12
    FreeWriting_13
    【转】ACE的构建(VC++6.0环境)
    Freewriting_10
    FreeWriting_16
  • 原文地址:https://www.cnblogs.com/gyh412724/p/9756826.html
Copyright © 2011-2022 走看看