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
_______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )