程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Django:在models.py中将TimeField更改为DateTimeField大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Django:在models.py中将TimeField更改为datetiR_554_11845@eField?

开发过程中遇到Django:在models.py中将TimeField更改为datetiR_554_11845@eField的问题如何解决?下面主要结合日常开发的经验,给出你关于Django:在models.py中将TimeField更改为datetiR_554_11845@eField的解决方法建议,希望对你解决Django:在models.py中将TimeField更改为datetiR_554_11845@eField有所启发或帮助;

是因为在postgresql中time无法将其转换(广播)为timestamp(与时区无关的变体)。F.ex. 这也会失败:

SELECT 'Now'::time::timestamp

在这些情况下,应在USING语句中使用该子句alter table(如果可以直接对其进行编辑):

[更改表](http://www.POSTGResql.org/docs/current/static/sql-altertable.HTML)[如果存在] [仅] _ **名称**_ [*]
ALTER [columN] _ **列名**_
[SET DATA] TYPE _**DATA_TYPE**_ [ColLATE _ **核对**_ ] [USING _ **表达**_ ]

您的查询将如下所示:

alter table "my_model"
alter colUMN "column_name"
SET DATA TYPE timestAMP WITH TIME ZONE USING 'yesterday'::date + "column_name"

解决方法

在我的models.py中,我有一些具有这种属性的模型:

timestamp = models.TimeField(default=0)

我想将它们更改为:

timestamp = models.datetiR_554_11845@eField(default=0)

使用

python manage.py scheR_554_11845@amigration app --auto

一审作品。但

python manage.py migrate app

导致此错误:

django.db.utils.programR_554_11845@ingError: column "timestamp" cAnnot be cast to type timestamp with time zone

所以我某种程度上需要使这种铸造成为可能。对于每个没有日期的时间,我想设置一个默认日期(例如昨天)。我怎样才能做到这一点?我只在SO上找到了它,由于该错误根本没有帮助。顺便说一句:我正在使用PostgreS和python3。

我感谢您的帮助!

如果更容易,我可以直接在数据库上使用sqL(不使用South)

大佬总结

以上是大佬教程为你收集整理的Django:在models.py中将TimeField更改为DateTimeField全部内容,希望文章能够帮你解决Django:在models.py中将TimeField更改为DateTimeField所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。