diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2013-09-04 15:49:45 +0000 |
---|---|---|
committer | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2013-09-04 15:52:20 +0000 |
commit | 1a9edf1fcb945f7f235ad5691f4958d1c4089dc0 (patch) | |
tree | c005ff4a12e8d1da3226a11ea912813c1e841572 | |
parent | d9ee2c28f858a5b97d00a9e4d56a4ac4ad269265 (diff) | |
download | padlite-teams-1a9edf1fcb945f7f235ad5691f4958d1c4089dc0.tar.gz padlite-teams-1a9edf1fcb945f7f235ad5691f4958d1c4089dc0.tar.bz2 padlite-teams-1a9edf1fcb945f7f235ad5691f4958d1c4089dc0.zip |
utils: add Unique wtforms validator
The Unique validator could check, if the value of the form field does
not alreadyy exists in the database for a specific field of a peewee model.
-rw-r--r-- | utils.py | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -1,5 +1,6 @@ from functools import wraps from flask import request, render_template +from wtforms import ValidationError # using http://flask.pocoo.org/docs/patterns/viewdecorators/ def templated(template=None): @@ -18,3 +19,19 @@ def templated(template=None): return render_template(template_name, **ctx) return decorated_function return decorator + +class Unique(object): + """ validator that checks field uniqueness """ + def __init__(self, model, field, message=None): + self.model = model + self.field = field + if not message: + message = u'This element already exists.' + self.message = message + + def __call__(self, form, field): + try: + self.model.get(self.field == field.data) + raise ValidationError(self.message) + except self.model.DoesNotExist: + pass |