diff options
-rw-r--r-- | acf2/model/field.lua | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/acf2/model/field.lua b/acf2/model/field.lua index e633a63..6277ec9 100644 --- a/acf2/model/field.lua +++ b/acf2/model/field.lua @@ -120,7 +120,7 @@ function M.Field:_load(context) return context.txn:get(context.addr) end function M.Field:_validate(context, value) if value == nil then - if self.required then raise(context.path, 'Required value not set') end + self:check_required(context) return end @@ -145,6 +145,10 @@ function M.Field:_validate(context, value) return save end +function M.Field:check_required(context) + if self.required then raise(context.path, 'Required value not set') end +end + function M.Field:normalize(context, value) return value end function M.Field:validate(context, value) end @@ -274,6 +278,10 @@ end function M.TreeNode.save_member(node, k, v) node[k] = v end +function M.TreeNode:validate_saved(context) + if self:load(context) == nil then self:check_required(context) end +end + M.Model = class(M.TreeNode) |