ivi*_*ica 2 python mongoengine
我正在尝试使用MongoEngine进行一个项目而且相当不错.我想知道是否可以为另一个字段中的字段设置默认值?像这样的东西
import mongoengine as me
class Company(me.Document):
short_name = me.StringField(required=True)
full_name = me.StringField(required=True, default=short_name)
Run Code Online (Sandbox Code Playgroud)
这失败了,错误 ValidationError (Company:None) (StringField only accepts string values: ['full_name'])
:编辑:
我没有提到我的应用程序有一个服务层,使我能够像这样简单地执行:
if company_data['short_name'] is None:
myCompany.full_name = company_data['short_name']
obj = myCompany.save()
Run Code Online (Sandbox Code Playgroud)
而且效果很好.
您可以覆盖以下save()方法Document:
class Company(me.Document):
short_name = me.StringField(required=True)
full_name = me.StringField()
def save(self, *args, **kwargs):
if not self.full_name:
self.full_name = self.short_name
return super(Company, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)