表关系四:表的普通字段 一对多字段、多对多字段插入数据
表的普通字段 一对多字段 多对多字段 插入数据
- #插入数据
- def add(request):
- G_title=request.POST.get('title')#-------值为:python书本
- G_publish=request.POST.get('publish') #-------值为:1
- G_authors_list=request.POST.getlist('authors')#-------值为:[3,7]
- publish_obj=Publish.objects.get(id=G_publish)#查找Publish表对应id的obj
- authors_obj_list=Author.objects.filter(id__in=G_authors_list)#查找Author表对应id的多个obj
- title #-------普通字段
- publish #-------一对多外键
- authors #-------多对多外键
- book_obj=Book.objects.create(title=G_title,publish=publish_obj)#添加普通和一对多外键的值
- #添加多对多外键的值
- 方式一
- book_obj.authors.add(*authors_obj_list)
- 方式二
- for obj in authors_obj_list:
- book_obj.authors.add(obj)
- return redirect('/index/')
表的普通字段 一对多字段 多对多字段 修改数据
- def edit(request,b_id):#b_id-----为书本的id
- G_title=request.POST.get('title')#-------值为:linux书本
- G_publish = request.POST.get('publish')#-------值为:2
- G_authors_list = request.POST.getlist('authors')#-------值为:[3,5]
- book_obj = Book.objects.get(id=b_id)#查找Book表要修改的id对象
- publish_obj = Publish.objects.get(id=G_publish)#查找Publish表对应id的obj
- author_objs = Author.objects.filter(id__in=G_authors_list)#查找Author表对应id的多个obj
- book_obj.title=G_title #-------修改普通字段
- book_obj.publish=publish_obj #-------修改一对多字段
- book_obj.authors=author_objs #-------修改多对多字段
- book_obj.save() #-------一定得save(),才能对数据库进行修改
- return redirect('/index/')
posted on 2018-06-06 21:00 myworldworld 阅读(160) 评论(0) 收藏 举报