求教Django中model类型为DateTimeField在查询时的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教Django中model类型为DateTimeField在查询时的问题相关的知识,希望对你有一定的参考价值。
Django还有一些warning打印出来:/Users/jay/workspace/te/env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:903: RuntimeWarning: DateTimeField TestSuite.update_time received a naive datetime (2014-06-15 14:38:37.873873) while time zone support is active. RuntimeWarning)这个warning的原因是,Django配置为使用timezone的datetime格式,而datetime.now是不包含timezone信息的。
如果不需要在程序中特别处理时区(timezone-aware),在Django项目的settings.py文件中,可以直接设置为“USE_TZ = False”就省心了。然后,在models.py中简单的设置为“ create_time = models.DateTimeField(auto_now_add=True)”和“update_time = models.DateTimeField(auto_now=True)”。
如果还要保持USE_TZ=True,则可设置为“default=datetime.now().replace(tzinfo=utc)” 。 参考技术A 这个好像不是问题,具体是什么?
将年份设置为默认值Django
我在模型中有一个字段,默认为当前字段。所以我使用默认参数,并且editable为false,但是我得到了这个错误
未定义名称“年份”
我的模特
def Get_Year():
year = datetime.date.today().year
return year
class DisposalHeader(models.Model):
DisposalSecondaryKey = models.UUIDField(unique=True, default=uuid.uuid4, editable=False)
Year = models.IntegerField(editable=False, default=Get_Year)
Sequence = models.IntegerField(editable=False, default=Sequence_SysGen)
CostCenter = models.ForeignKey(CostCenter, on_delete=models.CASCADE)
Requestor = models.ForeignKey(User, on_delete=models.CASCADE)
SiteLocation = models.ForeignKey(SiteLocation, on_delete=models.CASCADE)
ItemType = models.ForeignKey(ItemType, on_delete=models.CASCADE)
Remarks = models.CharField(max_length=100, null=True)
错误屏幕截图
答案
尝试一下: year = datetime.datetime.now().year
另一答案
删除Get_Year
函数,因为我并不真正需要它。
然后按如下所示更改模型:
year = models.DateField(default=datetime.date.today)
然后,如果您只想显示年份,则可以在模板中使用必要的格式设置选项。
以上是关于求教Django中model类型为DateTimeField在查询时的问题的主要内容,如果未能解决你的问题,请参考以下文章