2012-01-27 2 views
0

Я хочу получить идентификатор пользователя 5005 для себя. Я читал, что с помощью GAE вы можете выделить идентификатор и установить его, но я не совсем понимаю documentation.Как разместить ID

Код

handmade_key = db.Key.from_path('MyModel', 1) 
first_batch = db.allocate_ids(handmade_key, 10) 
first_range = range(first_batch[0], first_batch[1] + 1) 

my_id = first_range.pop(0) 
new_key = db.Key.from_path('MyModel', my_id) 
new_instance = MyModel(key=new_key) 
new_instance.put() 
assert new_instance.key().id() == my_id 

Но где же я положил, что я хочу 5005 в качестве идентификатора пользователя? Модель представляет собой модель пользователя из webapp2.

+1

Это функция, которая используется для «резервирования» набора идентификаторов, так что никаким другим объектам не будет предоставлен один и тот же ключ [который может вызвать конфликт]. AFAIK, вы не можете установить свой собственный идентификатор для объекта [хотя, я должен спросить, зачем вам нужна такая функциональность?] –

+0

Мой менеджер хочет составить простой идентификатор, например. 5005 и назначить его кому-то, а не, например. 9384637, когда есть только 2 пользователя или около того. Спасибо за комментарий. –

ответ

1

Вы можете выделить отдельные идентификаторы в диапазоне с помощью allocate_id_range, а затем вы должны быть в состоянии построить ключ вручную, используя Key.from_path, предоставляя свой собственный идентификатор, и назначить его на новый экземпляр модели, используя key аргумент.

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