我安装了django-jalali
软件包以便能够使用Jalali日历。 该程序包运行良好,我可以运行它,直到我想更改已记录的字段。但是,当我想更改该字段时,出现此错误:
ValueError: Cannot serialize: jdatetime.datetime(1398, 3, 10, 18, 17, 10, 557480)
There are some values Django cannot serialize into migration files.
怎么了?我该如何解决?
答案 0 :(得分:1)
哦,是的,我遇到了完全一样的错误,并且由于编码不正确和 时区无法读取的django,您不应使用默认值 参数,因为无法序列化迁移文件,因此您必须 使用auto_now_add = True参数。
您必须在设置中设置遵循参数
TIME_ZONE = 'Asia/Tehran'
USE_I18N = True
USE_L10N = True
USE_TZ = True
模型中的示例字段:
date_start = jmodels.jDateTimeField(auto_now_add=True, verbose_name="زمان شروع")
然后再次进行迁移。
祝你好运。
答案 1 :(得分:0)
推荐的解决方案
我确实更改了在datetime
项目中使用Django
的策略。目前,我在项目中使用UTC
和Aware
日期时间。
Django推荐:
处理有意识的日期时间对象并不总是很直观。对于 实例,标准datetime构造函数的tzinfo参数 在具有DST的时区不能正常工作。通常使用UTC 安全;如果您使用的是其他时区,则应查看pytz 仔细记录文档。