问题标签 [django-database]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 有没有办法用我的模型中的更改来更新数据库?
可能重复:
更新 django 数据库以反映现有模型的变化
我过去曾使用过 Django,而我对它作为 ORM 工具的挫败感之一是无法通过模型的更改来更新现有数据库。(Hibernate 在这方面做得很好,并且使更新和大量修改模型并将其应用到现有数据库变得非常容易。)有没有一种方法可以做到这一点而无需 每次都擦除数据库?在我想玩的模型的每次更改之后,必须重新生成管理员用户和网站,这真的很老了。
django - Django 一次创建多条记录
我希望能够为单个表单中的数据库表创建用户想要的尽可能多的记录。
例如,记录所需的数据会有一些输入,并且在行尾有一个“+”按钮,它将显示新的输入行。行数应该没有限制,当用户单击单个提交按钮时,将插入所有记录。
事情是:我不知道如何让新行动态显示,我想我必须为此使用 jquery,但我是个新手 :) 而且我不知道如何遍历所有行动态添加。
如果有人可以指出一个例子或其他东西,它会为我节省很多头发!
编辑 :
通过关注这篇博文,我设法做到了。我有最后一个问题是:当我尝试一次插入多条记录时,它会保持最后一条记录正常,但之前的记录被认为是空的。它告诉我这些字段是必需的,我填写它们并单击保存,然后才可以保存它们。
也许我会为此提出一个新问题!
django - Django 转储:模型不验证
当我尝试使用以下指令在 Django 中转储模型的数据时:
它给出了以下错误:
问题是这些表是由 django 自动生成的。另外我刚刚检查了数据库(mysql),字段是varchar(100)。
怎么了 ?
django - Django 列“id”不能为空
我的 mysql 数据库和 django 有一个奇怪的问题。
我使用从现有数据库中导入的模型创建了一个应用程序,该模型使用 inspectdb。它工作正常,直到昨天我删除了 django 自动创建的表(django_ 、auth_、site_*)。我这样做是因为当我在已安装的应用程序中添加我的应用程序时,它会阻止我的模型进行验证。
现在,今天我尝试在我的数据库中插入一条新记录,但出现以下错误:
该字段是一个主键,它应该是 auto_increment 所以我在创建新记录时不给它一个值。
有人能指出我这里发生了什么吗?
编辑:我部分地发现了问题:不知何故,我所有的 auto_increment 属性都从我的数据库中删除了。那是怎么发生的 ?
django - Django - 从模板中的数据库中选择对象
我有类似的东西:
不幸的是,我不能使用模板中的参数调用函数,所以这一行
不会工作。关于如何每次获取 Child 对象的任何想法?
django - Django:选择字段上的刷新问题
我有一个从 context_processors 调用的choiceField,因此它可以出现在我网站的所有页面中。它提供数据库中现有的项目。问题是它没有正确刷新。我删除了数据库中的一些记录,它们仍然在我的选择中。此外,我希望它在用户创建新项目时自动刷新。
这是我的表格以及我如何称呼它。如果有人有建议,将不胜感激。
表格.py:
context_processors.py:
django - 客户坚持让可编辑列成为表的主键
我正在 Django 上构建一个网络应用程序。客户坚持认为某个表上的某些列应该是主键,他不想要自动增量。但他也希望该列在应用程序中是可修改的,指出 Postgres 可以处理它(ON UPDATE CASCADE 子句)。我怎样才能让他摆脱困境,或者我应该同意这一点?他很固执。
编辑:我至少想知道按照他说的做事是否有害,或者这种方法有什么陷阱。
django - Django - 遗留数据库和“id”字段的问题
我正在将一个 php 应用程序中的 MySQL 数据库集成到一个新的 Django 项目中。Inspectdb运行良好,我只需将几个字段更改为 ForeignKeys,现在所有读取和编辑当前数据的工作都很好。
问题是当我尝试创建新条目时,出现错误"Field 'id' doesn't have a default value"
。回溯从form.save()
调用开始,异常来自 MySQL 游标。在大多数情况下,该列被命名id
,但在一种情况下,它是一个命名值:
对于 ModelTwo,当我发布一个有效的表单时,我得到了错误,但是如果我回到我的数据列表,新的项目就会出现!在我检查了id
shell 中的最新值之后,我可以看到它们正在正确递增。
但是对于 ModelOne(只有id
),错误仍然出现,并且 pk 变为 2147483647(最大值)并且由于重复的 id,后续保存失败。(下一个最高的pk只有62158)
我需要做什么才能使这些 id 字段正常工作?
更新:解决这个问题仍然没有运气。考虑转储数据并将其导入到新的 Django 构建的表中。仍在寻找解决此问题的方法。
update2:来自 db shell 的信息
型号一:
模型二:
django - model.AutoField - form.save() 创建新记录 (INSERT) 而不是更新现有记录
情况:有一个包含一些数据的现有 mysql 数据库。对于这个例子,我只使用了两个字段;id和主题。id被定义为带有 *auto_increment* 选项的整数,而subject只是一个普通的 varchar。编码:
型号:
表格:
查看:
问题描述: 当表单向alistPost-function发送新数据时,form.save()按原样插入一条新记录。但是,当我编辑一个已经存在的记录时,它也会作为新记录插入......而不是像它应该做的那样更新。
尝试将 id 从AutoField更改为IntegerField会改变行为:修改记录会使form.save()修改现有记录,而尝试插入新记录则失败,因为它没有 id。
问题: 我是否必须手动从数据库中获取一个新的 ID 值并强制 Django 将它用于这条新记录,或者有没有办法让 Django 自动确定它是否应该使用 INSERT 或 UPDATE?
django - Django runonce-per-db flag?
What is the Django "runonce-per-db" flag?
I see it mentioned in this thread, but cannot find any documentation for it.