多表图书管理系统作业要点(关键是模板语法的使用):

1. 获取select,checkbok等标签值,在POST字典中对应的值为列表,
   需要用 request.POST.getlist("key")获取值。如果用set只能获取列表最后一个值
2. 对于多(一)对多的表关系的查询,可以在模板中使用模板语法,如: 查询的对象.被关联的记录对象.all

{% for author in book_obj.authors.all %}
    {{ author.name }}
{% endfor author %}
就可以取到相应的对象

3. 巧用forloop判断循环条件或者操作循环中的顺序等。
4. 对于编辑信息,存在多个值需要选中对应的默认值,可以利用模板语法for循环与if判断当前
   循环的对象是否与默认的对象相等

{% for publish in publish_list %}
    {% if publish == publish_compare %}
        <option select value="{{ publish.pk }}"> 啦啦 </option>
    {% else %}
        <option value="{{ publish.pk }}"> 啦啦 </option>
    {% endif %}
{% endfor %}

# ============================================================

{% for author in author_list %}
    {% if author in author_compare %}
        <option select value="{{ author.pk }}"> 啦啦 </option>
    {% else %}
        <option value="{{ author.pk }}"> 啦啦 </option>
    {% endif %}
{% endfor %}

5. 批量绑定多对对的关系:有时候需要清除之前绑定的关系在进行重新绑定。如(*号必须写):
   book_obj.authors.clear()
   book_obj.authors.add(*name_list)

   可以用一句代替上面的操作(不加星号,默认清空之前的绑定关系)
   book_obj.authors.set(name_list)
posted @ 2018-08-02 23:46  哈哈大圣  阅读(93)  评论(0编辑  收藏  举报