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

37.Django1.11.6文档

select_on_save Options.select_on_save 该选项决定Django是否采用1.6之前的django.db.models.Model.save()算法。 ...引用User模型 如果直接引用User(例如,通过外键引用),在AUTH_USER_MODEL设置已更改为不同用户模型的项目中,代码将不能工作。...response_add在管理表单提交后,在对象和所有相关实例已创建并保存之后调用。 您可以覆盖它以在对象创建后更改默认行为。...在对象已删除后调用response_delete。 您可以覆盖它以在对象被删除后更改默认行为。 obj_display是具有已删除对象名称的字符串。...它们包含一些有用的通知: django.db.models.signals.pre_save&django.db.models.signals.post_save 在模型 save()方法调用之前或之后发送

24.4K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    『Django』模型入门教程-操作MySQL

    Django 为我们提供了一种更简单的操作数据库的方式。 在 Django 中,模型(Model)是用来定义数据库结构的类。每个模型类通常对应数据库中的一个表,类的属性对应表中的列。...ORM 在了解模型之前先了解一下什么是 ORM。 ORM(Object-Relational Mapping,对象关系映射)是 Django 框架中用于与数据库进行交互的一种工具。...Django 应用的 models.py 文件中),并生成描述这些更改的迁移文件。...在没有定义自己的模型之前,也能执行数据库迁移,这是因为 Django自带了一些默认的应用程序(如认证系统、会话管理、站点管理等),这些应用程序依赖于一些数据库表。...这些表的迁移文件已经包含在 Django框架中,当执行迁移时,Django会为这些默认应用程序创建必要的数据库表。 创建模型 在创建模型之前我们需要知道这个模型属于哪一个应用下的。

    9610

    makemigrations 和 migrate工作原理分别是什么

    runserver startapp startproject 还有其他的我先不写了,这是比较常用的 本篇文章主要根据题目分析makemigrations和migrate makemigrations: 根据检测到的模型创建新的迁移...说白了,就是将对数据库的更改,主要是数据表设计的更改,在数据库中真实执行。例如,新建、修改、删除数据表,新增、修改、删除某数据表内的字段等等。...本篇整合: 1、makemigrations 和 migrate 工作原理分别是什么: makemigrations:根据检测到的模型创建新的迁移。...迁移的作用,更多的是将数据库的操作,以文件的形式记录下来,方便以后检查、调用、重做等等。 migrate:使数据库状态与当前模型集和迁移集同步。...说白了,就是将对数据库的更改,主要是数据表设计的更改,在数据库中真实执行。例如,新建、修改、删除数据表,新增、修改、删除某数据表内的字段等等。

    1.2K10

    开发 Django 博客文章阅读量统计功能

    ['views']) increase_views 方法首先将自身对应的 views 字段的值 +1(此时数据库中的值还没变),然后调用 save 方法将更改后的值保存到数据库。...迁移数据库 一旦更改了模型,就需要迁移数据库,以便让 Django 将更改反应到数据库中。...一旦该视图函数被调用,说明文章被访问了一次,因此我们修改 detail 视图函数,让被访问的文章在视图函数被调用时阅读量 +1。...if m is not None else '' return render(request, 'blog/detail.html', context={'post': post}) 即只需在视图函数中调用模型的...在模板中显示阅读量 在模板中显示阅读量和显示其它字段一样,只需要使用模板变量即可。即模板适当的地方使用 {{ post.views }} 模板变量。

    57810

    三、模型(一)

    数据库中字段是否为主键 db_index 数据库中字段是否可以建立索引 unique 数据库中字段是否可以建立唯一索引...要完成该项工作,第一步是在 Django 项目中 激活这些模型。 将上面的模型所在的app添加到配置文件的已安装应用列表中即可完成此步骤。...当你使用Django modle API创建对象时Django并未将对象保存至数据库内,除非你调用`` save()`` 方法。...当你在Python中处理Unicode对象的时候,你可以直接将它们混合使用和互相匹配而不必去考虑编码细节。 Django 在其内部的各个方面都使用到了 Unicode 对象。...在上面的例子中,这个值是2。 删除对象 删除数据时要谨慎! 为了预防误删除掉某一个表内的所有数据,Django要求在删除表内所有数据时显示使用all()。

    4.5K90

    Django博客教程(四):让 django 完成翻译—迁移数据库模型

    目前来说,我们在 models.py 文件里创建了 3 个模型类,django 把这些变化记录在了 0001_initial.py 里。...django 通过检测应用中 migrations 目录下的文件,得知我们对数据库做了哪些操作,然后它把这些操作翻译成数据库语言,从而把这些操作应用于真正的数据库里。...使用 django 的方式从数据库里获取数据 数据库最主要的操作就是往里面存入数据、从中取出数据、修改已保存的数据和删除不再需要的数据。...先在命令行中来探索一下这些函数,感受一下如何使用 django 的方式来操作数据库。在 manage.py 所在目录下运行命令: ? 这打开了一个交互式命令行。...为了让 django 帮我们把这些数据保存进数据库,调用实例的 save() 方法即可。

    1.1K90

    django 1.8 官方文档翻译: 1-2-2 编写你的第一个Django应用,第2部分

    在页面的底部还为你提供了几个选项: Save – 保存更改并返回到当前类型的对象的更改列表页面。 Save and continue editing – 保存更改并重新载入当前对象的管理界面。...Save and add another – 保存更改并载入当前对象类型的新的空白表单。 Delete – 显示删除确认页。...上面那特定的更改使得 “Publication date” 字段在 “Question” 字段之前: 仅有两个字段不会令你印象深刻,但是对于有许多字段的管理表单时,选择一个直观 的排序方式是一个重要的实用细节...如果你在窗口中添加了一 poll 并点击了 “Save” 按钮, Django 会将 poll 保存至数据库中并且动态的添加为你正在查看的 “Add choice” 表单中的 已选择项。...移除对 Choice 模型的 register() 方法调用 。

    2.5K40

    Django数据库--事务及事务回滚

    数据库的读写操作中,事务在保证数据的安全性和一致性方面起着关键的作用,而回滚正是这里面的核心操作。Django的ORM在事务方面也提供了不少的API。...如果数据库之前的使用的是自动提交,那么在切换为非自动提交之前,必须确保当前没有活动的事务,通常可以手动执行commit() 或者 rollback() 函数来把未提交的事务提交或者回滚。...#测试用,检测是否能捕捉错误 except DatabaseError: # 自动回滚,不需要任何操作 pass 此方案比较灵活,事务可以在代码中的任意地方开启...(): author.save() raise DatabaseError #报出错误,检测事务是否能捕捉错误 except DatabaseError...在一个事务中可以创建多个保存点。

    4K10

    Python:Web框架 Django之manage.py

    在Linux下,该命令一般位于site-packages/django/bin,最好做一个链接到/usr/local/bin,方便调用。...一、命令 1. check 检查整个Django项目是否存在常见问题。默认情况下,所有应用都将被选中。...python manage.py diffsettings 3. flush 从数据库中删除所有数据。已应用的迁移不会被清除。只删除具体数据,不删除数据表!...python manage.py flush 4. makemigrations 根据检测到的模型创建新的迁移。迁移的作用,更多的是将数据库的操作,以文件的形式记录下来,方便以后检查、调用、重做等等。...说白了,就是将对数据库的更改,主要是数据表设计的更改,在数据库中真实执行。例如,新建、修改、删除数据表,新增、修改、删除某数据表内的字段等等。

    19710

    Django权限系统auth模块详解

    4  is_authenticated() 要求: 1  用户登陆后才能访问某些页面, 2  如果用户没有登录就访问该页面的话直接跳到登录页面 3  用户在跳转的登陆界面中完成登陆后,自动访问跳转到之前访问的地址...若用户没有登录,则会跳转到django默认的 登录URL '/accounts/login/ ' (这个值可以在settings文件中通过LOGIN_URL进行修改)。...User 新建用户 user = User.objects.create_user(username, email, password) 建立user对象 user.save() 需要调用save()...在django.contrib.auth.models.Permission模型中保存了项目中所有权限。 该模型在数据库中被保存为auth_permission数据表。...Permission.objects.get(codename='access_user_manage')是通过权限模型创建,需要在models中创建一个权限类,然后在meta中进行定义codename

    1.6K20

    让 Django 完成翻译:迁移数据库

    我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,Django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建。...目前来说,我们在 models.py 文件里创建了 3 个模型类,Django 把这些变化记录在了 0001_initial.py 里。...Django 通过检测应用中 migrations\ 目录下的文件,得知我们对数据库做了哪些操作,然后它把这些操作翻译成数据库操作语言,从而把这些操作作用于真正的数据库。...() >>> t = Tag(name='tag test') >>> t.save() 我们首先导入 3 个之前写好的模型类,然后实例化了一个 Category 类和一个 Tag 类,为他们的属性...为了让 Django 把这些数据保存进数据库,调用实例的 save 方法即可。 再创建一篇文章试试,但创建文章之前,我们需要先创建一个 User,用于指定文章的作者。

    1.2K90

    django 1.8 官方文档翻译: 2-4-4 编写迁移

    数据迁移和多数据库 在使用多个数据库时,需要解决是否针对某个特定数据库运行迁移。例如,你可能 只 想在某个特定数据库上运行迁移。...为此你可以在RunPython中通过查看schema_editor.connection.alias 属性来检查数据库连接别名: from django.db import migrations def...添加唯一字段的迁移 如果你应用了一个“朴素”的迁移,向表中一个已存在的行中添加了一个唯一的非空字段,会产生错误,因为位于已存在行中的值只会生成一次。所以需要移除唯一性的约束。...在这个例子中,我们会以默认值添加一个非空的UUIDField字段。你可以根据你的需要修改各个字段。 把default=…和unique=True参数添加到你模型的字段中。...在AddField之后, RunPython之前创建的对象会覆写他们原始的uuid。

    42710

    基于 Django 信号机制实现类似触发器的效果

    我们都知道,在关系数据库中,为了保证数据完整性,我们都会使用一个叫做触发器的玩意。今天我就基于Django信号机制实现类似触发器的效果,在此之前我先简单介绍一下触发器。...触发器的优点 触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束。...定义模型 我们接下来就去 models.py 定义模型,代码如下: from django.db import models # Create your models here....信号主要位于 django.db.models.signals 模块中,其中有 pre_save(增加数据之前)、post_save(增加数据之后)、pre_delete(删除数据之前)、post_delete...() 配置项目 配置项目我们首先激活模型,在 settings.py 中的 INSTALLED_APPS 列表中增加一个名为'student.apps.StudentConfig'的元素,如图所示。

    2.6K30
    领券