来自其他字段的mongoengine默认值 [英] mongoengine default value from another field
本文介绍了来自其他字段的mongoengine默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在为一个项目尝试MongoEngine,它相当不错.我想知道是否可以为另一个字段中的一个字段设置默认值?像这样
I'm trying out MongoEngine for a project and its quite good. I was wondering if it is possible to set a default value for a field from another field? Something like this
import mongoengine as me
class Company(me.Document):
short_name = me.StringField(required=True)
full_name = me.StringField(required=True, default=short_name)
此操作失败,并显示错误ValidationError (Company:None) (StringField only accepts string values: ['full_name'])
this fails with an error ValidationError (Company:None) (StringField only accepts string values: ['full_name'])
:修改:
我没有提到我的应用程序具有服务层,这使我能够像这样简单地做到这一点:
I did not mention that my app has a service layer which enabled me to simply do it like this:
if company_data['short_name'] is None:
myCompany.full_name = company_data['short_name']
obj = myCompany.save()
而且效果很好.
推荐答案
您可以覆盖Document上的> save()
方法:
You can override save()
method on a 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)
这篇关于来自其他字段的mongoengine默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文