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)