问题描述
我的 Flask 服务器在 mongoDB 中有一个简单的用户架构。我正在使用 mongoengine 来处理数据库。架构如下:
class User(Document):
username = StringField(unique=True,requireed=True)
email = EmailField(unique=True)
password = StringField(required=True)
creditCount = IntField(default=0,min_value=0,max_value=None)
date_created = DateTimeField(default=datetime.utcNow)
def json(self):
user_dict = {
"username": self.username,"email": self.email,"creditCount": self.creditCount,}
return json.dumps(user_dict)
Meta = {
"indexes": ["username"],# index based on username
"ordering": ["-date_created"],# order in decending order
}
当我尝试减少用户的 creditCount 时,我收到一条错误消息,指出整数值太小。我已经确认用户有 10 个学分,他们只需要有 1 个学分就可以使代码工作。我使用的代码如下:
try:
user = User.objects(username=request.args["username"]).get()
print(user.creditCount)
except DoesNotExist:
return "That user does not exist"
if user.creditCount == 0:
return "You do not have enough credits to search for a doggo."
print("credits: " + str(user.creditCount)) #This is where I'm confirming the user has enough credits through the terminal
if os.path.isfile(filePath):
user.update(dec__creditCount=1)
return send_file(filePath)
我不完全确定可能是什么问题,因为我正在验证用户拥有多个积分,并且还将他们的积分打印到终端上,并且他们超过了一个。我还可以使用 inc__creditCount=1 增加信用计数。
谢谢! 布拉德
解决方法
有一个关于这个错误的公开票,见 https://github.com/MongoEngine/mongoengine/issues/2339