首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

表的普通字段 一对多字段 多对多字段 插入数据 #插入数据 def add(request): G_title=request.POST.get('title')#-------值为:python...等的查询集(QuerySet) book_obj.save() #-------一定得save(),才能对数据库进行修改 return redirect('/index/') 补充知识:Django...两个字段,一个是author(作者表)包含id,name,email三个字段,这是我们刚刚在models.py文件中创建两个模型,但是有一点需要注意的是在book表里面没有我们创建的authors表,而是多了一个...blog_book_authors是根据多对多关系自动生成的关系表,但是如果我们想要搜集关于这个作者发布某一本书籍的时间额外增加一个字段,或者说与现有的系统集成,这个关系表已经存在了,那对于这样的情形,Django...多对多字段的更新插入数据实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

4.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

因为 Django ORM update,我今天差点「从删库到跑路」

发现我改的字段更新了,但是唯独 update_time 字段没更新。...然后我把 update() 方法改成 update_or_create() 方法又跑了一遍,因为我上次把 update_or_create() 改成了 update(), update_time 字段更新了...") create_time 在第一次新增数据时创建,之后便不再改变,update_time 会在每次数据更新更新。...但,update_time 并非每次都更新,比如使用上文提到的 update_or_create() 方法会更新,save() 方法也会更新。因为这两个方法都是走的 Django ORM。...而更适用于批量操作的 update() 方法则是直接执行数据库 SQL,Django ORM,所以 update_time 也就得不到更新。那要想更新怎么办呢?

1K10

Python的Django框架实现数据库查询(返回QuerySet的方法)

manage.py makemigrations app_name[应用的名称] python manage.py migrate app_name[应用的名称] 迁移成功后可以进行以下的操作咯~ 二、介绍返回...update_or_create() 更新对象,若没有找到则创建新的对象 delete() 批量删除对象 first() 获取第一个对象 last() 获取最后一个对象 latest() 获取最近的对象...13045621112, name=’小牛’) user_obj.save() 3.bulk_create()方法: bulk_create(objs, batch_size=None) 这种插入比较高效...(通常仅一个查询,无论有多少对象),将提供的对象列表插入到数据库中。...以上这篇Python的Django框架实现数据库查询(返回QuerySet的方法)就是小编分享给大家的全部内容了,希望能给大家一个参考。

2.5K30

Django学习之旅(六)

5 插入与查询数据 Author 和 Book 表已经新建成功了。你可能有这样的疑惑。我要怎么往该表插入数据呢?听我慢慢道来。 在 Django 中,一个模型类对应一个数据库的表。...看到 意味着成功创建对象,即成功向数据库插入一条数据。 2)查询数据 同样在 python 终端下,执行下面的命令。 ?...而一旦我们建立好数据模型,Django 会自动为我们生成一套数据库抽象的API。这样就大大方便我们创建、检索、更新和删除对象。 假如现在有个需求,我们需要查询数据库中所有的作者并打印出作者的姓名。...5)使用 QuerySet 更新数据 A、单个 object 更新, 适合于 .get(), get_or_create(), update_or_create() 等得到的 obj,和新建很类似。...B、批量更新, 适用于 .all() .filter() .exclude() 等后面 ?

1.4K30

Django之QuerySet详解

11. none() 调用none()将创建一个返回任何对象的查询集,并且在访问结果时不会执行任何查询。...减少为只有两个查询: >>> Pizza.objects.all().prefetch_related('toppings') 这意味着现在每次self.toppings.all()被调用,不会再去数据库查找,而是在一个预取的...4. update_or_create() update_or_create(defaults=None, **kwargs) 类似前面的get_or_create()。...update_or_create方法尝试通过给出的kwargs 去从数据库中获取匹配的对象。 如果找到匹配的对象,它将会依据defaults 字典给出的值更新字段。...和get_or_create()一样,这个方法也容易导致竞态条件,如果数据库层级没有前置唯一性会让多行同时插入。 在Django1.11在defaults中增加了对可调用值的支持。

2.3K20

Django开发密码管理表实例【附源码】

文章及代码比较基础,适合初、中级人员,高手略过 阅读此篇文章你可以: 获取一个Django实现增删改查的案例源码 了解数据加密的使用场景和方法以及如何在Python3中使用 背景介绍 DBA需要维护一张密码表...代码中用到了Django的一个QuerySet API可能部分人没有用过update_or_create,这里详细介绍下 update_or_create(defaults=None, **kwargs...) 看到方法的命名大概也能猜出来这个方法的主要作用就是更新或者创建model数据,那么究竟什么情况下更新?...主要根据传入的**kwargs来判断,defaults为要更新的数据。...方法返回结果为一个元组(object, created),object为新建或者更新的对象,created为一个布尔值,表示是新建还是更新,True为新建 密码加密 对于密码加密,我们知道加密算法有很多

98720

Django ORM 知识概要

相关命令 python3 manage.py makemigrations 根据模型生成相关迁移文件 python3 manage.py migrate 根据迁移文件,将表结构更新到数据库中,并在...这个不是SQL标准的一部分,完全由Django处理。 DO_NOTHING:SQL等价物:NO ACTION。...数据表操作 更改数据表 删除数据库表步骤 删除对应的模型类代码 删除migrationd文件夹下面的模型类 删除Django的migrations表中对应的记录 删除数据库表 导入数据 Django...annotate() 使用聚合计数,求和,平均数,raw() 执行原生SQL annotate()对分组后的结果进行统计 Model.objects.get().子表的表名 _set.all() 返回...更新对象 update(),update_or_create() 更新更新或创建 删除对象 delete() 使用filter 过滤 其它操作 exists(),count(),aggregate(

1.8K20

Django笔记(十一)实现对数据库的各种操作,比如分组,排序等

根据单个年,月,日,时分秒进行查询 extra 额外操作,实现字典码翻译 select select_params where 和 params order_by 排序 tables 查询哪个表 Django...using() 指定去哪个数据库拿数据 values()获取每行数据为字典格式 values_list() 获取每行数据为元祖 bulk_create()批量创建数据 get_or_create() update_or_create...distinct=True), n=Count('nid') ) ===> {'k': 3, 'n': 4} 不等于 Article.objects.exclude(id=1) F() 我们在做更新的时候...models.UserInfo.objects.get_or_create(username='root1', defaults={'email': '1111111','u_id': 2, 't_id': 2}) update_or_create...() # 如果存在,则更新,否则,创建 # defaults 指定创建时或更新时的其他字段 obj, created = models.UserInfo.objects.update_or_create

82510

05.Django基础五之django模型层(一)单表操作

,我们接着往下看 具有auto_now属性字段的更新 我们通常会给表添加三个默认字段 - 自增ID,这个django已经默认加了,就像上边的建表语句,虽然只写了username和is_active两个字段...,速度快     update_or_create:有就更新,没有就创建 ,还有个get_or_create,有就查询出来,没有就创建 obj,created = models.UserToken.objects.update_or_create...queryset类型的数据来调用,返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列 model的实例化对象,而是一个可迭代的字典序列...models.UserInfo.objects.get_or_create(username='root1', defaults={'email': '1111111','u_id': 2, 't_id': 2}) def update_or_create...它运行时立即删除对象而返回任何值。例如: model_obj.delete()     你也可以一次性删除多个对象。

2.9K10

Django学习笔记之Django QuerySet的方法

一般情况下,我们在写Django项目需要操作QuerySet时一些常用的方法已经满足我们日常大多数需求,比如get、filter、exclude、delete神马的感觉就已经无所不能了,但随着项目但业务逻辑越来越复杂...这里的读文档不是有业务需求时去查文档,而是要为了阅读文档而阅读文档。...以下也是作为我的文档阅读笔记,我记下了一些我以后可能会用到或者一些技巧性提升的东西,好,废话,正文开始: 首先,我们假设有以下两个model: class Entry(Model.models):...Entry.objects.create(ip='127.0.0.1', time=, black=False) 6、get_or_create(kwargs) 和 update_or_create...,但要注意,它不能更新外键, 不能更新切片过的queryset以及不能再被切片的set,用法如下: Entry.objects.filter(black=False).update(ip='0.0.0.0

57350

从零搭建一个django项目-3-数据存储-mysql

CREATE DATABASE`django_wx` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 1 — 编写模型类 就像java中有mybatis...、hibernate这样的orm框架,django也有将数据库操作语句封装的结果集,可以让我们不用写原生sql就可以操作数据。...from django.utils import timezone from django.db import models # Create your models here. class DB_weatherinfo_base...重新调用沈阳市:后面的时间更新了,即update_or_create没有时候创建已有的数据更新,city=city表示关键字以这个查询,后面的defaults接收一个元祖里面是要更新的字段。...接下来编写all的天气更新方法: class get_weatherinfo_all(APIView): # authentication_classes = [JwtAuthorizationAuthentication

62910

django models.py(python和django)

,减少mysqlO 3.8选择需要的字段only 3.9n+1问题 1.创建模型类 打开pay应用的models.py创建模型类 from datetime import datetime from django.db...2) 关于主键 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...开头的 Brand.objects.filter(name__startwith='电') 查询品牌名字中以'脑'结尾的 Brand.objects.filter(name__endwith='电') 区分大小写就在前面...用的时候发出去,可能在这期间数据已经改变了) print(goods)才会发送sql 可以通过print(goods.query)查看发出的sql语句 帮助调试 3.2get_or_create 直接插入数据可能会冲突...id=20,brand_id=1) 首先尝试获取,不存在就创建,可以防止重复 返回(object, True/False) true表示创建成功 false表示数据库已经存在该数据 类似的还有update_or_create

1K10
领券