I am trying to implement custom validation in the edit form. However, I don't know how to obtain the object that is being edited in the method validate_form
.
class ShiftModelView(ModelView):
"""ModelView to manage Shift model."""
def validate_form(self, form) -> bool:
"""Validate form."""
if not super().validate_form(form):
return False
if form.scheduled_from.data >= form.scheduled_to.data:
message = (
"'Scheduled From' cannot be greater than or equal to 'Scheduled To'"
)
flash(message, "error")
return False
# HERE I NEED THE OBJECT THAT IS BEING EDITED
How can I achieve this?
The form
has a protected member _obj
that is the current object being edited.
def validate_form(self, form) -> bool:
"""Validate form."""
if not super().validate_form(form):
return False
if form.scheduled_from.data >= form.scheduled_to.data:
message = (
"'Scheduled From' cannot be greater than or equal to 'Scheduled To'"
)
flash(message, "error")
return False
# HERE I NEED THE OBJECT THAT IS BEING EDITED
print(form._obj)