只有在mongoengine中创建文档时才能执行某些代码,而不是在更新时。
class Account(Document):
name = StringField(max_length=80, default=None)
username = StringField(max_length=60, required=True)
created_at = DateTimeField(default=datetime.now(), required=True)
updated_at = DateTimeField(default=datetime.now(), required=True)
meta = {
'collection': 'accounts'
}
现在我想生成随机用户名,并在创建文档之前将其分配给用户名字段。
感谢任何帮助。感谢。
答案 0 :(得分:1)
你应该使用其中一个MongoEngine's signals - pre_save()
听起来很合适。将different ways附加到信号的事件处理程序,其中之一是:
from mongoengine import signals
class Account(Document):
# ...
@classmethod
def pre_save(cls, sender, document, **kwargs):
document.username = "random username"
signals.pre_save.connect(Account.pre_save, sender=Account)