Hello all, I use the zope.schema field's constraint parameter to check for the uniqueness of a particular field like this
class IMyObject(Interface):
def check_for_uniqueness(value):
cat = getUtility(ICatalog)
results = cat.searchResults(object_name=value)
for rslt in results:
if rslt.name.lower() == value.lower():
raise NameAlreadyExists(value)
return True
name = TextLine(title=u'Name', required=True,
constraint=check_for_uniqueness)
...
This goes well with the zope.formlib's AddForm. But in edit form if I
modify any other field other than the 'name' field I get the
'NameAlreadyExists' error. Worse case scenario is where I have a cancel
action button which just redirects to another page, that too screams for
the NameAlreadyExists error.
Is there a way to disable the constraint check in the EditForm if the
'name' field isn't modified?
What is the preferred way of doing these kind of checks?
Please guide me.
--
Joshua Immanuel
HiPro IT Solutions Private Limited
http://hipro.co.in
signature.asc
Description: This is a digitally signed message part
_______________________________________________ bluebream mailing list [email protected] https://mail.zope.org/mailman/listinfo/bluebream
