通过django将datefield保存到Postgresql返回格式错误

通过django将datefield保存到Postgresql返回格式错误,django,postgresql,datefield,Django,Postgresql,Datefield,我试图将格式为dd/mm/yyyy的日期从使用Django的视图保存到postgresql表中。我得到以下错误: ValidationError: [u"'2014/01/30' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."] 如何更改特定表或整个数据库的格式 我试过:alterdatabasemydb将datestyle设置为“ISO,YMD” 然后当我运行SHOW

我试图将格式为dd/mm/yyyy的日期从使用Django的视图保存到postgresql表中。我得到以下错误:

ValidationError: [u"'2014/01/30' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]
如何更改特定表或整个数据库的格式

我试过:
alterdatabasemydb将datestyle设置为“ISO,YMD”

然后当我运行
SHOW lc\u ctype时我得到:

lc_ctype   
-------------
en_US.UTF-8
然后
选择当前日期返回

  date    
------------
 2014-01-29
所以看起来不错,如果错误在Django中,会出现什么问题

my views.py如下所示:

logEntry, created = Logs.objects.get_or_create(entrydate=request_data['entryDate'], message=request_data['message'])
logEntry.save()
还有我的模特

class Logs(models.Model):
   entrydate= models.DateTimeField(auto_now_add=True)
   message = models.CharField(max_length=100)

也许您的模型中有DateTimeField而不是DateField。 此错误消息位于DateTimeField中
更改DateTimeField->DateField

我建议您更改视图,以便将日期正确解析为日期时间,而不是对数据库进行更改。此外,将其保存为时区感知的datetime对象可以按如下方式进行:

# views
from django.utils import timezone
from datetime import datetime


entrydt = datetime.strptime(request_data['entryDate'], "%Y/%m/%d")
entrydt = entrydt.replace(tzinfo=timezone.get_current_timezone())
logEntry, created = Logs.objects.get_or_create(entrydate=entrydt, 
                                               message=request_data['message'])
logEntry.save()

如果它必须是YYYY-MM-DD格式,那么我认为是“2014/01/30”。替换(“/”,“-”)。但是很难看