我需要更新一个模型对象并保存,这样就可以反映这个结果。在
但是当我试图得到这个模型的一个对象时,我已经检查了这个对象是否存在
modelOne = lkmModel.objects.get(id=1)
我有个错误:
AttributeError: 'datetime.date' object has no attribute 'tzinfo'
我已经搜索过了,是的,我有一个关于“日期”的字段,但这个字段是:
^{pr2}$当我搜索的时候,我的字段“matchingDate”不是问题,不是吗?在
我要写我的模型.py下图:
from django.db import models
import datetime
class lkmModel(models.Model):
id = models.IntegerField()
matchingDate = models.DateTimeField(default=datetime.date.today())
isNoon = models.BooleanField(default=True)
dayOfWeek = models.IntegerField()
profileUrl = models.TextField()
name = models.CharField(max_length=20,default=None)
affiliation = models.CharField(max_length=20,default=None)
age = models.IntegerField(db_index=True)
residence = models.CharField(max_length=20,default=None)
bloodType = models.CharField(max_length=20,default=None)
religion = models.CharField(max_length=20,default=None)
personality = models.TextField(default=None)
appearance = models.TextField(default=None)
hobby = models.TextField(default=None)
ability = models.TextField(default=None)
idealType = models.TextField(default=None)
career = models.TextField(default=None)
best = models.TextField(default=None)
badge1 = models.CharField(max_length=10,default=None)
badge2 = models.CharField(max_length=10,default=None)
badge3 = models.CharField(max_length=10,default=None)
manual = models.TextField(default=None)
point = models.IntegerField()
def __str__(self):
return self.name
尽管我将“匹配日期”字段更改为:
matchingDate = models.DateTimeField()
当我问的时候,同样的错误发生了, 我觉得比我预想的更严重。。。
我做错什么了吗? 我的python版本是3.4.4,django的版本是1.9.2
谢谢你!在
第一件事是不要在模型中使用id。Django自动将其添加为主键。在
另一件事是,您试图在Datetime字段中填充date对象。日期时间与日期不同。在
而是使用
^{pr2}$更好的是,如果您想使用默认时间作为创建对象的时间,请使用auto_now_add。(如果我误解了目的,请抱歉)
但实际的错误来自时区信息。在
安装pytz(
pip install pytz
)并尝试使用带有时区信息(tzinfo)的datetime,而不是幼稚的。在
这将提供启用时区的日期时间
在日期时间.日期没有属性tzinfo。您必须仅在datetime对象上使用它。在
首先,您的模型不能有一个名为}。在
id
的字段,而不将其声明为primary_key
。其次,在创建django模型时,使用django.utils.timezone.now
,而不是{问题的根本原因是您将
datetime.date
对象作为默认值提供给一个datetime.datetime
实例。因此,它指出tzinfo
属性,即时区信息丢失。tzinfo
是datetime
和time
对象的属性,而不是date
对象的属性。你可以在这里阅读更多信息:https://docs.python.org/2/library/datetime.html因此,修改后,
models.py
应该如下所示:这应该能解决问题。在
相关问题 更多 >
编程相关推荐