первичный ключ в хранилище данных Google Appengine - PullRequest
6 голосов
/ 21 ноября 2010
    from google.appengine.ext import db
    from datetime import date    
    class Test(db.Model):
        title=db.StringProperty(required=True)
        tags=db.StringListProperty(required=True)

отпечаток на типе объекта Тест показывает

Test(key_id=1, title='ashu_saved', tags=['db'])

но атрибут key_id недоступен для title.key_id. Также test.pk возвращает u'agRibG9nchILEgxhc2lzYWlkX3Rlc3QYAQw' есть ли способ получить красиво выглядящие целочисленные первичные ключи, которые я могу использовать в URL, из объектов модели в google- AppEngine?

Ответы [ 2 ]

4 голосов
/ 21 ноября 2010

Попробуйте с:

yourkey = test.key().id()

и вернуть ваше значение:

Test.get_by_id(ids = yourkey)
0 голосов
/ 30 июля 2013

Это недопустимое решение, так как все записи имеют идентификатор (). Лучше всего так:

key = entity.key()
Model.get(key)

Запись может иметь идентификатор () или имя (), но должна иметь ключ ().

Даже все ваши записи имеют id (), это все равно неправильно, так как сущность адресована ApplicationId, NamespaceId, ParentModel, Model и id или ключом.Ключ PRIMARY - это все эти поля.

Это означает, что у вас может быть много сущностей с одинаковым идентификатором (), если вы используете пространства имен или родительский для обеспечения согласованности транзакций - попробуйте избежать использования id (), если вы не уверены.

...