Django中ORM之操作表记录

本文详细介绍了如何使用ORM技术进行数据库操作,包括添加、修改和删除记录等常见操作,并提供了具体实例。

添加表记录

添加普通字段

   #方法一
    book_obj = Book(title='book7',publishDate='2011-05-02',price=200,publish_id=1)
    book_obj.save()
    
    #方式二
    Book.objects.create(title='book8',publishDate='2014-05-02',price=200,publish_id=1)

添加外键字段

   #方法一
    publish_obj = Publish.objects.get(nid=1)
    Book.objects.create(title='book7',publishDate='2011-05-02',price=200,publish=publish_obj)
    
    #方法二
    Book.objects.create(title='book8', publishDate='2014-05-02', price=200, publish_id=1)

多对多字段

  #多对多字段
    book_obj = Book.objects.create(title='book9', publishDate='2015-05-02', price=200, publish_id=1)
    author_1 = Author.objects.create(name='a1',age=20)
    author_2 = Author.objects.create(name='a2',age=23)
    book_obj.authors.add(author_1,author_2) #将某个特定的model对象添加到被关联对象集合中
    book_obj.authors.create()               #创建并保存一个新对象

    #解除关系
    book_obj.authors.remove() #将某个特定的对象从被关联对象集合中去除
    book_obj.authors.clear()  #清空被关联对象集合
    book_obj.authors.set(author_1) #先清空,再设置
  
  #对于所有类型的关联字段,add()、create()、remove()和clear(),set()都会马上更新数据库。在关联的任何一端,都不需要再调用save()方法

修改表记录

  update是QuerySet对象的方法,get返回的是一个model对象,没有update方法。update()方法对于任何QuerySet均有效,这意味着你可以同时更新多条记录,update()方法会返回一个整型数值,表示受影响的记录条数。

    
    #方式一
    author_obj = Author.objects.get(id=5)
    author_obj.name = 'jane'
    author_obj.save()

    #方式二
    Author.objects.filter(id=5).update(name='jane')

删除表记录

   删除方法就是delete(),它运行时立即删除对象而不返回任何值

  你也可以一次性删除多个对象,每个QuerySet都有一个delete方法,它一次性删除QuerySet中所有的对象。

  无论在什么情况下,QuerySet中的delete()方法都只使用一条SQL语句一次性删除所有对象,而并不是删除每个对象。如果你想使用在model中自定义的delete()方法,就要自行调用delete方法

Book.objects.filter(publishDate__year='2011').delete()

 

转载于:https://www.cnblogs.com/iamluoli/p/8984503.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值