表关系四:表的普通字段 一对多字段、多对多字段插入数据

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

 

[python] view plain copy
 
  1. #插入数据  
  2. def add(request):  
  3.   
  4.     G_title=request.POST.get('title')#-------值为:python书本  
  5.   
  6.     G_publish=request.POST.get('publish') #-------值为:1  
  7.     G_authors_list=request.POST.getlist('authors')#-------值为:[3,7]  
  8.   
  9.   
  10.   
  11.     publish_obj=Publish.objects.get(id=G_publish)#查找Publish表对应id的obj     
  12.     authors_obj_list=Author.objects.filter(id__in=G_authors_list)#查找Author表对应id的多个obj  
  13.   
  14.     title       #-------普通字段  
  15.     publish     #-------一对多外键  
  16.     authors     #-------多对多外键  
  17.   
  18.     book_obj=Book.objects.create(title=G_title,publish=publish_obj)#添加普通和一对多外键的值  
  19.       
  20.   
  21.     #添加多对多外键的值  
  22.     方式一  
  23.     book_obj.authors.add(*authors_obj_list)  
  24.     方式二  
  25.     for obj in authors_obj_list:  
  26.         book_obj.authors.add(obj)  
  27.   
  28.     return redirect('/index/')  



 

表的普通字段   一对多字段    多对多字段    修改数据

 

[python] view plain copy
 
    1. def edit(request,b_id):#b_id-----为书本的id  
    2.   
    3.     G_title=request.POST.get('title')#-------值为:linux书本  
    4.   
    5.     G_publish = request.POST.get('publish')#-------值为:2  
    6.     G_authors_list = request.POST.getlist('authors')#-------值为:[3,5]  
    7.   
    8.   
    9.     book_obj = Book.objects.get(id=b_id)#查找Book表要修改的id对象  
    10.   
    11.     publish_obj = Publish.objects.get(id=G_publish)#查找Publish表对应id的obj  
    12.     author_objs = Author.objects.filter(id__in=G_authors_list)#查找Author表对应id的多个obj  
    13.   
    14.   
    15.     book_obj.title=G_title          #-------修改普通字段  
    16.     book_obj.publish=publish_obj    #-------修改一对多字段  
    17.     book_obj.authors=author_objs    #-------修改多对多字段  
    18.   
    19.     book_obj.save()                 #-------一定得save(),才能对数据库进行修改  
    20.   
    21.     return redirect('/index/')  

posted on 2018-06-06 21:00  myworldworld  阅读(160)  评论(0)    收藏  举报

导航