gpt4 book ai didi

python - 使用 from_json 制作的 MongoEngine 文档对象不保存

转载 作者:太空狗 更新时间:2023-10-29 20:15:43 25 4
gpt4 key购买 nike

我正在尝试使用 from_json 方法构建文档对象。 object.save() 没有抛出错误,但是文档没有插入到 mongo 中。

另一方面,如果我通过为每个字段赋值来创建对象,则效果很好。

我找不到原因。以下是这两种情况的代码。

from flask import Flask
from flask.ext.mongoengine import MongoEngine
import json, datetime

app = Flask(__name__)
app.config["MONGODB_SETTINGS"] = {'DB': 'test','host': 'localhost'}
app.config["SECRET_KEY"] = "mySecretKey"

db = MongoEngine(app)
class User(db.Document):
user_id = db.StringField(max_length=16, primary_key = True)
username = db.StringField(min_length=8)
email = db.EmailField(required = True, unique = True)
password = db.StringField(required = True)
date_of_birth = db.DateTimeField()
gender = db.StringField(choices = ('M', 'F'))

'''
This one works. This will add a user in local mongodb(test)
'''
u1 = User()
u1.username = 'test12345'
u1.user_id = 'testid12345'
u1.email = 'test@test.com'
u1.password = 'testerpass'
u1.save()

'''
This one doesn't works.
'''
u2 = User()
temp_json = {'username':'test2_12345','user_id':'testid2@12345','password':'testerpass2','email':'test2@test.com'}
u2 = u2.from_json(json.dumps(temp_json))
u2.save()

最佳答案

一个mongoengine文档对象可以用**kwargs初始化。因此,使用它我们可以通过以下方式实现 from_json 功能:-

obj_dict = {
'key1' : 'value1',
'key2' : 'value2'
}
user = User(**obj_dict) # User is a mongoengine document object

这对我有用。

关于python - 使用 from_json 制作的 MongoEngine 文档对象不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21731860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com