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

从postresql中删除了列,但django看不到它

在这种情况下,可能是因为Django的模型与数据库中的表结构不同步。当你删除了PostgreSQL中的列,但Django的模型仍然保留对该列的引用时,就会出现这个问题。

要解决这个问题,你可以尝试以下步骤:

  1. 确认数据库中列已被删除:使用PostgreSQL的客户端工具(如pgAdmin)连接到数据库,检查表结构,确保列已被删除。
  2. 更新Django模型:在Django的模型文件中,找到对应的模型类,删除对应列的字段定义。确保模型与数据库表结构保持一致。
  3. 运行数据库迁移:在终端中,使用Django的命令行工具运行数据库迁移命令,将模型的变更同步到数据库中。例如,运行以下命令:
  4. 运行数据库迁移:在终端中,使用Django的命令行工具运行数据库迁移命令,将模型的变更同步到数据库中。例如,运行以下命令:
  5. 这将生成并应用数据库迁移脚本,更新数据库表结构。
  6. 重新启动应用程序:如果你的应用程序正在运行,重新启动它以确保Django加载最新的模型定义。

通过执行以上步骤,你应该能够解决从PostgreSQL中删除列后Django看不到它的问题。

关于PostgreSQL、Django和数据库迁移的更多信息,你可以参考以下链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

彻底搞懂Django中的数据迁移

关系型数据库又是数据库中的一种,其中的数据以表的形式组织,表具有一定数量的列、任意数量的行,每张表又可以通过外键连接其他的表。 表中每列都有特定的数据类型,这就是 Django 里常说的字段了。...这个指令根据 App 现有的迁移文件内容,伪造 dango_migrations 表中的内容,欺骗 Django 的迁移状态,从而帮助你从报错中解脱出来。 举个例子。...也就是说,migrate --fake 指令可以修改 django_migrations 表中的记录,但并不会真正的修改数据库本身。 希望你永远都用不到 --fake。 ?...迁移文件是 Django 进行迁移的重要依据且互相依赖,不要随意改动,并应该纳入版本管理。虽然它可以手动修改,但前提是你完全了解它的工作原理。...在迁移遭到破坏的情况下,不要想当然的去删表删文件瞎操作,而是利用好 Django 提供的方法,小心翼翼的恢复它。

6.4K20

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

博客地址: http://www.jianshu.com/u/f0c09f959299 ❈ 上一篇教程中我们完成了数据库模型的代码,但是那还只是Python 代码而已,我们还没有让django 把它翻译成数据库语言...和创建数据库表一样,django 为这些操作提供了一整套方法,从而把我们从数据库中解放出来。我们不用学习如何利用数据库语言去完成这些操作,只要简单地调用几个 python 函数就可以满足我们的需求。...先根据标题 title从数据库中取出Post,保存在变量p中,然后调用它的delete 方法,最后看到Post.objects.all()返回了一个空的 QuerySet(类似于一个列表),表明数据库中没有...这就是 django 对数据库增、删、改、查的操作。除了上述演示的方法外,django还为我们提供了大量其它的方法,这些方法有一部分会在教程中使用,用到时我会讲解它们的用法。...但以后你开发自己的项目时,你就需要通过阅读 django 的官方文档 来了解有哪些方法已经如何使用它们。

1.1K90
  • Django教程 —— 站点后台管理

    后台管理 假设我们要设计一个新闻网站,我们需要编写展示给用户的页面,网页上展示的新闻信息是从哪里来的呢?是从数据库中查找到新闻的信息,然后把它展示在页面上。...但是我们的网站上的新闻每天都要更新,这就意味着对数据库的增、删、改、查操作,那么我们需要每天写sql语句操作数据库吗?...Django后台管理对数据库表操作 上篇讲到在项目的 shell 终端对数据库表的操作,现在我们来看看Django后台对数据库表的操作 查询 点击"Book Infos"可以进入列表页,默认只有一列。...在列表页中点击某行的第一列可以进入修改页。 删除 按照提示进行内容的修改,修改成功后进入列表页。在修改页点击“删除”可以删除一项。...但发现没有左边还是英文。 我们只要在模型类添加一个 Meta 类设置相应的属性即可。

    2.1K10

    Django教程 —— 站点后台管理

    后台管理 假设我们要设计一个新闻网站,我们需要编写展示给用户的页面,网页上展示的新闻信息是从哪里来的呢?是从数据库中查找到新闻的信息,然后把它展示在页面上。...但是我们的网站上的新闻每天都要更新,这就意味着对数据库的增、删、改、查操作,那么我们需要每天写sql语句操作数据库吗?...有,那就是我们接下来要给大家讲的Django的后台管理。Django能够根据定义的模型类自动地生成管理页面。...Django后台管理对数据库表操作 上篇讲到在项目的 shell 终端对数据库表的操作,现在我们来看看Django后台对数据库表的操作 查询 点击 Book Infos 可以进入列表页,默认只有一列...但发现没有左边还是英文。 我们只要在模型类添加一个 Meta 类设置相应的属性即可。

    1.6K20

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

    我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,Django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建。...Category.objects.get(name='category test') 的含义是从数据库中取出 name 的值为 category test 的分类记录。...,保存在变量 p 中,然后调用它的delete 方法,最后看到 Post.objects.all() 返回了一个空的 QuerySet(类似于一个列表),表明数据库中已经没有 Post,Post 已经被删除了...这就是 Django 对数据库增、删、改、查的操作。除了上述演示的方法外,Django 还为我们提供了大量其它的方法,这些方法有一部分会在教程中使用,用到时我会讲解它们的用法。...但以后你开发自己的项目时,你就需要通过阅读 Django 的官方文档 来了解有哪些方法可用以及如何使用它们。

    1.2K90

    Django-admin2 已死,Django-xadmin 继续

    之后的开发体验也和文章中总结的一样,功能完善,文档不全,定制起来麻烦(相对来说)。...在之后我的blog后台也有一段时间使用了admin2来替代自带的Admin,在实际使用中也提了两个Pull-Request。...大概意思是“我们最近已经不在开发它了。虽然我们很想继续推动它,但没有需求需要我们继续在这上面工作。”...从需求上来说,先说admin2,“面子工程”做的确实不够足,使用一个django-admin-bootstrapped的项目,可以轻松的让页面变成admin2这样,除了API的功能,仿佛看不到特别的需求...当然除了上面说的那两个原因,还有一个原因是这个开源项目是被广泛使用的(有人踩过坑,并填上了的)。 关于这两项目以及技术和需求你有什么看法呢?

    2.3K40

    django 字段类型_access的数据库类型是

    (14) FloatField 代表在python中由float实例表示的浮点数。 (15) ImageField 继承FileField所有的方法,但还验证上传的对象为有效的图像。...除了 可用于特殊属性FileField,一个ImageField也具有height和width 属性。为了便于查询这些属性,ImageField有两个额外的可选参数。...在数据库中创建的为varchar列,默认最大长度为100字符。 ImageField.height_field:每次保存模型实例时,模型字段的名称都会自动填充图像的高度。...在PostgreSQL上使用时,它存储在uuid数据类型中,否则存储在 中char(32)。 是通用的唯一标识符,可以很好的替代带有的 primary_key的AutoField字段。...**PROTECT:**通过引发ProtectedError的子类来防止删引用的对象,是django.db.IntegrityError的子类。

    3.9K30

    Django之ORM基础

    简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 ORM由来 让我们从O/R开始。...它通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。  ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。...但是在整个软件开发过程中需要特殊处理的情况应该都是很少的,否则所谓的工具也就失去了它存在的意义。 Django连接MySQL数据库 1....在Django项目的settings.py文件中,配置数据库连接信息: DATABASES = { "default": { "ENGINE": "django.db.backends.mysql...每个字段被指定为一个类属性,每个属性映射到一个数据库列。

    72370

    FastAPI框架诞生的缘由(上)

    但是有时候,没有更好的办法,除了创建具有所有这些功能的东西,从以前的工具中汲取最佳创意,并以最佳方式将它们组合起来,使用以前甚至没有的语言功能(Python 3.6+类型提示)。...它还常用于其他不需要数据库,用户管理或 Django 中预建功能的应用程序。尽管其中许多功能都可以通过添加插件来实现。...但是,FastAPI 从 Requests 中获得了很多启发。Requests 是一个与API(作为客户端)进行交互的库,而 FastAPI 是一个用于构建 API(作为服务器)的库。...但同时,它非常强大且可自定义。 这就是为什么,如官方网站所述: Requests 是有史以来下载次数最多的Python软件包之一 您的使用方式非常简单。...Marshmallow 一个由 API 系统所需的主要功能是数据的序列化,就是把数据从编程语言中的对象转称成可以在网络上传输的对象,比如数据库中的数据转换为 JSON 对象。

    2.4K10

    Sentry 开发者贡献指南 - 数据库迁移

    为避免这种情况,请执行以下步骤: 列 如果列不是空的,则将其标记为空,并创建一个迁移。 部署。 从模型中删除列,但在迁移中确保我们只将状态标记为已删除(removed)。 部署。...最后,创建一个删除列的迁移。 这是删除已经可以为空的列的示例。首先我们从模型中删除列,然后修改迁移以仅更新状态而不进行数据库操作。...然后我们之后验证它。我们仍然需要扫描整个表来验证,但我们只需要持有一个 SHARE UPDATE EXCLUSIVE 锁,它只会阻止其他 ALTER TABLE 命令,但允许读/写继续。...添加具有默认值的列 向现有表添加具有默认值的列是危险的。这需要 Postgres 锁定表并重写它。相反,更好的选择是: 在 Postgres 中添加没有默认值的列,但在 Django 中添加默认值。...如果你真的想重命名列,那么步骤将是: 创建具有新名称的列 开始对新旧列进行双重写入。 将旧列值回填到新列中。 将字段更改为从新列开始读取。 停止写入旧列并从代码中删除引用。 从数据库中删除旧列。

    3.6K20

    Django学习笔记之Queryset详解

    我们修改一下代码,如下,遍历一开始也是先执行查询得到a,但当执行print (e.blog.name)时,还需要再次查询数据库获取blog实体。...QuerySet的方法 数据库的常用操作就四种:增、删、改、查,QuerySet的方法涉及删、改、查。后面还会讲model对象的方法,model方法主要是增、删、改、还有调用model实例的字段。...中的实现 在SQL中,很多关键词在删、改、查时都是可以用的,如order by、 like、in、join、union、and、or、not等等,我们以查询为例,说一下django如何映射SQL的这些关键字的...(查、删、改中这些关键字的使用方法基本相同)。.../endswith——对应like     字段名加双下划线,除了它,还有icontains,即Case-insensitive contains,这个是大小写不敏感的,这需要相应数据库的支持。

    2.7K30

    Mysql基础

    ): 删除与权限相关的库mysql,所有的授权信息都丢失,主要用于测试数据库或者刚刚建库不久没有授权数据的情况(从删库到跑路) [root@controller ~]# rm -rf /var/lib/... 在数据库系统中,SQL语句不区分大小写(建议用大写) 。但字符串常量区分大小写。建议命令大写,表名库名小写; SQL语句可单行或多行书写,以“;”结尾。关键词不能跨多行或简写。...[where 语句] /* UPDATE语法可以用新值更新原有表行中的各列。 SET子句指示要修改哪些列和要给予哪些值。...  表中数据三条,id分别为1,2,3,突然插入一个id=7,那么下次作为主键的字增长的id会从几开始增长呢?   ...from tab_name -- 其中from指定从哪张表筛选,*表示查找所有列,也可以指定一个列 -- 表明确指定要查找的列,distinct用来剔除重复行

    4.2K20

    Django 博客教程(三):创建应用和编写数据库模型

    已经在代码中做了详细的注释,说明每一句代码的含义。但如果你在移动端下阅读不便的话,也可以跳到代码后面看正文的里的讲解。 ? ? ? ?...除了 CharField ,django 还为我们提供了更多内置的数据类型,比如时间类型 DateTimeField、整数类型 IntegerField 等等。...在本教程中我们会教你这些类型的使用方法,但以后你开发自己的项目时,你就需要通过阅读 django 的官方文档关于字段类型的介绍来了解有哪些数据类型以及如何使用它们。...文章的数据库表稍微复杂一点,主要是列更多。我们为它指定了这些列: title。这是文章的标题,数据类型是 CharField,最大长度 max_length = 70。 body。...文章作者,这里 User 是从 django.contrib.auth.models 导入的。

    95690

    创建 Django 博客的数据库模型

    可以看出从 Python 代码翻译成数据库语言时其规则就是一个 Python 类对应一个数据库表格,类名即表名,类的属性对应着表格的列,属性名即列名。...已经在代码中做了详细的注释,说明每一句代码的含义。但如果你在移动端下阅读不便的话,也可以跳到代码后面看正文的里的讲解。...除了 CharField ,Django 还为我们提供了更多内置的数据类型,比如时间类型 DateTimeField、整数类型 IntegerField 等等。...在本教程中我们会教你这些类型的使用方法,但以后你开发自己的项目时,你就需要通过阅读Django 官方文档 关于字段类型的介绍 来了解有哪些数据类型可以使用以及如何使用它们。...title 4 body 4 2 分类 ID 分类名 1 Django 2 Python 可以看到文章和分类实际上是通过文章数据库表中 分类 ID 这一列关联的。

    1.3K60

    第 03 篇:创建 Django 博客的数据库模型

    还有一个列 id,虽然没有显示定义,但 django 会为我们自动创建。...可以看出从 Python 代码翻译成数据库语言时其规则就是一个 Python 类对应一个数据库表格,类名即表名,类的属性对应着表格的列,属性名即列名。...已经在代码中做了详细的注释,说明每一句代码的含义。但如果你在移动端下阅读不便的话,也可以跳到代码后面看正文的里的讲解。...提示: 在本教程中我们会教你这些类型的使用方法,但以后你开发自己的项目时,你就需要通过阅读 django 官方文档 关于字段类型的介绍[1] 来了解有哪些数据类型可以使用以及如何使用它们。...title 4 body 4 2 分类 ID 分类名 1 Django 2 Python 可以看到文章和分类实际上是通过文章数据库表中 分类 ID 这一列关联的。

    57340

    Python数据分析实战基础 | 清洗常用4板斧

    ☞500g+超全学习资源免费领取 这是Python数据分析实战基础的第三篇内容,主要对前两篇进行补充,把实际数据清洗场景下常用但零散的方法,按增、删、查、分四板斧的逻辑进行归类,以减少记忆成本,提升学习和使用效率...,要基于“流量级别”这列进行去重,则可以: 我们会发现,流量有三个级别,通过指定subset参数,我们删除了这个字段重复的行,保留了各自不重复的第一行。...继续展开讲,在源数据中,流量渠道为“一级”的有7行数据,每行数据其他字段都不相同,这里我们删除了后6行,只保留了第一行,但如果我们想在去重的过程中删除前面6行,保留最后一行数据怎么操作?...此处我们只想要各级别流量下的访客数和支付金额,需要指明参数: 流量级别作为汇总的依据列,默认转化为索引列,如果我们不希望它变成索引,向groupby内传入参数as_index = False即可:...总结 本文从增、删、查、分四个模块,分别介绍了横向、纵向合并;删空、去重;筛选、排序和分组、切分等数据清洗过程中的常见操作。

    2.1K21

    Django 基础快速入门

    Django 下创建对应的 app): django-admin startproject DjangoAutoServer 以上代码中,django-admin startproject 是创建 Django..."林", "role": "富婆杀手"}, ] val = {"name": "1_bit", "roles": roles, "uinfo": uinfo, "valList": valList} 从以上数据中我们可以得知...%} {{key}} {% endfor %} 除了有 keys 属性外,还有一个 values 属性,通过 values 的遍历即可渠道所有字典值...此时创建的这个列数据需要存在于那个表的指定列 id 中有值在生成 depart时将会生成 depart_id 表示指向的某一个表的列名 # on_delete 表示在删除对应关联的表内容时,自动删除所关联的对应内容...删 删除操作也很简单,直接使用 model 指定对应的表通过指定 filter 后调用 delete 方法即可: def delete(request): # 删 models.UserInfo.objects.filter

    1.7K20

    这么强?!Erda MySQL Migrator:持续集成的数据库版本控制

    ,数据无法恢复,只能“从删库到跑路”;……为了应对这样的乱局,我们需要数据库版本控制工具。...从以上脚本结构可以看到,我们选用的 Django ORM 来描述模型和进行 CRUD 操作。为什么采用 Django ORM 呢?...Django 提供了一种强大而直观的方式来“追踪”查询中的关系,在幕后自动处理 SQL JOIN 关系。它允许你跨模型使用关联字段名,字段名由双下划线分割,直到拿到想要的字段。...Erda MySQL Migrator 除了可以作为 Action 编排在流水线中,还可以脱离 Erda 平台作为命令行工具单独使用。...上面示例中指出了这条语句有两条不合规处:一是新增列时,应当有列注释,此处缺失;二是新增的列应当是 NOT NULL 的,此处没有指定。

    85720
    领券