主要内容;
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>