2010-04-13 2 views
2

Похоже, что ограничение 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 

ответ

4

Нет, вы все еще не можете указать уникальный при создании схемы.

Эта проблема находится here, если вы хотите ее просмотреть. Он пока не отображается в их списке features on deck, так что, похоже, есть другие функции, над которыми они будут работать в первую очередь.

+4

Для поддержки уникальных свойств, отличных от имени ключа, потребуются глобальные транзакции, поэтому вряд ли мы добавим его в ближайшее время. Пока же вам нужно реализовать уникальность самостоятельно, используя ключевые имена или сущности «lookaside». –

0

Вы можете получить «уникальное ограничение» в хранилище данных приложения as described here. Пример представлен на Java, но вы должны иметь возможность применять те же концепции в python.

Смежные вопросы