Django 多对多字段的更新和插入数据

来源:互联网 发布:linux下如何退出vi 编辑:程序博客网 时间:2024/05/20 01:45

表的普通字段   一对多字段    多对多字段    插入数据

#插入数据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/')





原创粉丝点击