Похоже, что ограничение unique
не поддерживается в GAE, хотя one can enforce unique
check before putting
an object to store.Уникальное ограничение на уровне данных в GAE
Но это было в январе 2009 года, что теперь? Могу ли я указать ограничение unique
на столбец во время создания схемы? то есть
class Account(db.Model):
name = db.StringProperty()
email = db.StringProperty() as unique # something like this
@classmethod
def create(cls, name, email):
a = Account(name=name, email=email)
a.put()
return a
Для поддержки уникальных свойств, отличных от имени ключа, потребуются глобальные транзакции, поэтому вряд ли мы добавим его в ближайшее время. Пока же вам нужно реализовать уникальность самостоятельно, используя ключевые имена или сущности «lookaside». –