Ich versuche, ein Dokumentobjekt mit der Methode "from_json" zu erstellen. object.save() gibt keinen Fehler aus, aber das Dokument wird nicht in mongo eingefügt.MongoEngine Document Object, das mit from_json erstellt wird, speichert nicht
Auf der anderen Seite, wenn ich das Objekt durch Zuweisen von Werten zu jedem der Felder machen, funktioniert es gut.
Ich kann den Grund dafür nicht finden. Unten ist der Code für beide Fälle.
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 = '[email protected]'
u1.password = 'testerpass'
u1.save()
'''
This one doesn't works.
'''
u2 = User()
temp_json = {'username':'test2_12345','user_id':'[email protected]','password':'testerpass2','email':'[email protected]'}
u2 = u2.from_json(json.dumps(temp_json))
u2.save()
und eines Ihrer JSON-Felder im Mongo-Stil war ein Datum im Format 'timestamp: {$ date: 1440027939372}', richtig? – Phlip