mongoengine.errors.ValidationError:整数值太小

问题描述

我的 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...