通过django将db与现有表同步到现有模式表,并自动更新表和其余列的几列

时间:2015-04-01 17:47:07

标签: django django-models

我正在Django做一个poc,我试图创建管理控制台模块,通过django管理控制台通过模型插入,更新和删除记录,它做得很好 我有两个问题。

1.我需要为现有表提供模型对象,这些对象需要存在于特定的schema.say schema1.table1中 到目前为止,我正在为公共架构做poc。 所以它可以在一个固定的定义模式中完成,如果是的话。任何引用都会非常有用

2.此外,我想通过控制台更新表中的几列,其余列将自动完成,如currentimestamp和创建日期等。是否可以通过默认的django控制台,如果是,请分享任何参考

1的步骤

我现在所做的是在model.py中创建了一个类,其属性为author,title,body,timeofpost

然后我在makemigrations app之后使用sqlmigrate来创建表,并且在迁移之后一直使用管理控制台为django插入和更新创建的表的记录。但这仅适用于POC。

现在我需要做同样的事情但是对于我可以与之交互的现有表,并通过管理控制台插入或更新那些现有表的记录。

默认情况下,这些表也是在公共模式中创建的。但我使用的是postgres,现有的表存在于不同的模式中,我想为这些现有的表插入,更新和删除。

我被困在这里,因为我不知道如何使用现有的数据库模式表配置模型,我们可以通过django控制台和不同的模式而不是公共模式进行交互

2的步骤:

此外,我希望用户为少数列提供输入,例如假设在这种情况下,创建时间不需要由用户输入。在数据库更新或创建时应该注意

由于

1 个答案:

答案 0 :(得分:1)

为了让Django能够互动"使用现有数据库,您需要为其创建一个可以自动完成的模型as shown here。这假设你的"外部"数据库不会经常被更改,因为您必须保持模型同步这很棘手 - 如果您需要,还有其他方法。

至于使用多个数据库模式 - 您是否有理由不能将POC表放在与其他数据库相同的数据库中? Django支持多个数据库,但设置起来会更困难。请参阅here

最后,听起来您有兴趣设置Django默认字段属性。有关当前时间的示例,请参阅here