
Django中的ORM之增:
1、使用create方式
方式一:
1 | Publish.objects.create( "name" = "人民出版社" ,city= "北京" }
|
方式二:
1 | Publish.objects.create(**{ "name" : "文艺出版社" , "city" : "上海" }}
|
2、使用save方式
方式一:
1 2 | book1=Book(title= "python" ,price= "88" ,publish_id= "1" ,publication_date= "2017-06-18" )
book1.save()
|
方式二:
1 2 | author1=Author(name= "jerry" )
author1.save()
|
3、一对多的信息的创建
方式一:
1 2 3 4 5 6 7 | #获取出版社对象publish_obj=Publish.objects.get(id=4)
#将出版社的对象绑定到书籍的记录中Book.objects.create(
title= "python" ,
price=48.00,
publication_date= "2017-07-12" ,
publish=publish_obj,
)
|
方式二:
1 2 3 4 5 6 | #直接把出版社的id号插入到书籍的记录中Book.objects.create(
title= "python" ,
price=48.00,
publish_id=2,
publication_date= "2017-06-18" ,
)
|
4、多对多信息的创建
为一本书添加多个作者
1 2 3 4 | author1=Author.objects.get(id=1)#获取id号为1的作者对象
author2=Author.objects.filter(name= "tom" )#获取名字为 "tom" 的作者对象
book1=Book.objects.get(id=2)#获取id号为2的书籍对象
book1.authors.add(author1,author2)#为书籍对象添加多个作者对象
|
也可以用这种方式:
1 2 | book1.authors.add(*[author1,author2])#为书籍对象添加作者对象的列表
book1.authors.remove(*[author1,author2])#删除指定书籍的所有作者
|
为一个作者添加多本书
1 2 3 4 | author_obj = Author.objects.filter(name= "jerry" )#获取名字为 "jerry" 的作者对象
book_obj=Book.objects.filter(id__gt=3)#获取id大于3的书籍对象集合
author_obj.book_set.add(*book_obj)#为作者对象添加书籍对象集合
author_obj.book_set.remove(*book_obj)#删除指定作者对象所有的书籍
|
手动创建多对多的作者与书籍信息表
1 2 3 4 5 | class Book2Author(models.Models):
author=models.ForeignKey( "Author" )#为作者指定Author这张表做为外键
book=models.ForeignKey( "Book" )#为书籍指定Book这张表做为外键
author_obj=models.Author.objects.filter(id=3)[0]#获取Author表中id为3的作者对象
book_obj=models.Book.objects.filter(id=4)[0]#获取Book表中id为4的书籍对象
|
方式一:
1 2 | obj1=Book2Author.objects.create(author=author_obj,book=book_obj)
obj1.save()
|
方式二:
1 2 | obj2=Book2Author(author=author_obj,book=book_obj)
obj2.save()
|
更多Python知识,请关注:Python自学网!!