我正在存储拍卖项目,并且我的应用程序在浏览器中成功运行,这意味着我创建的所有拍卖项目都显示了正确的开始和结束日期。这些开始和结束日期被存储为DateTimeFields
,存储的是使用datetime.now()
的datetime对象,其中包括微秒。例如:
2020-01-20 14:06:22.398123
在python控制台中,我运行以下命令:
from auctionitem.models import AuctionItem
AuctionItems.objects.all()
我收到一个关于无效十进制操作的严重错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Users\Sir Chris Mazzochi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\db\models\query.py", line 252, in __repr__
data = list(self[:REPR_OUTPUT_SIZE + 1])
File "C:\Users\Sir Chris Mazzochi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\db\models\query.py", line 258, in __len__
self._fetch_all()
File "C:\Users\Sir Chris Mazzochi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\db\models\query.py", line 1261, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "C:\Users\Sir Chris Mazzochi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\db\models\query.py", line 74, in __iter__
for row in compiler.results_iter(results):
File "C:\Users\Sir Chris Mazzochi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\db\models\sql\compiler.py", line 1081, in apply_converters
value = converter(value, expression, connection)
File "C:\Users\Sir Chris Mazzochi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\db\backends\sqlite3\operations.py", line 286, in converter
return create_decimal(value).quantize(quantize_value, context=expression.output_field.context)
decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>]
model.py(用于拍卖项目)
from django.db import models
from django.contrib.auth.models import User
from PIL import Image
import datetime
print("Running for Mazzo")
class AuctionItem(models.Model):
seller = models.ForeignKey(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to='auction_items')
title = models.CharField(max_length=100)
description = models.TextField()
startBid = models.DecimalField(max_digits=6, decimal_places=2)
buyNowPrice = models.DecimalField(max_digits=6, decimal_places=2)
buyNowEnabled = models.BooleanField()
deliveryCost = models.DecimalField(max_digits=6, decimal_places=2)
now = datetime.datetime.now()
now_no_micro = now.replace(microsecond=0)
startDate = models.DateTimeField(default=now_no_micro)
tdelta = datetime.timedelta(days=7)
enDate = now_no_micro + tdelta
endDate =models.DateTimeField(default=enDate)
viewCount=models.IntegerField(default=0)
def __str__(self):
return self.title
def save(self):
super().save()
img = Image.open(self.image.path)
if img.height > 300 or img.width > 300:
output_size = (300, 300)
img.thumbnail(output_size)
img.save(self.image.path)
def incrementViewCount(self):
print('Hi Chris Mazzochi')
self.viewCount = self.viewCount + 1
self.save()
我想知道这个错误所指的小数点是否是datetime对象中的小数点,该对象的微秒后附加了一个“点”、“.”,……这就是我的错误所在吗?我是否需要无微秒存储日期
谢谢, 铁人
目前没有回答
相关问题 更多 >
编程相关推荐