Я пытаюсь сделать уникальный валидатор для WTForms, который работает с движком Google App. У меня есть модель под названием «Вопрос» и поле под названием «slug», которое мне нужно, чтобы оно было уникальным. Я нашел этот действительно хороший пример в Stackoverflow, но он использует SQLAlchemy. Я хотел посмотреть, может ли кто-нибудь помочь мне понять, как заставить его работать с Google App Engine вместо SQLAlchemy.
Пример SQLAlchemy: Уникальный валидатор в WTForms с моделями SQLAlchemy
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):
check = self.model.query.filter(self.field == field.data).first()
if check:
raise ValidationError(self.message)
Как мне кажется, для работы с GAE нужно поменять строчку "check"? Но я не лучший специалист в передаче подобных вещей объектам.
Я знаю, что запрос GAE будет чем-то вроде ... Question.query (Question.slug = slug)
Unique
в вопросе. - person rajpy   schedule 31.10.2013