以下に示すように、Mongoengine の変更操作にカスタム検証を適用しようとしています。
class Form(Document):
fields = ListField(EmbeddedDocumentField(Field))
def modify(self, *args, **kwargs):
for field in self.fields:
if not [field for field in self.fields if field.type == "email"]:
raise ValidationError("Form must have an email field")
super(Form, self).modify(**kwargs)
def update_form(self, modify_kwargs):
return self.modify(**modify_kwargs)
ただし、 を呼び出すupdate_form
と、カスタム検証では更新されたデータが考慮されませんmodify
。このタイプの検証を行うためのある種の事前フックはありますか?