Получить значения ключа / идентификатора из хранилища данных ядра приложения? - PullRequest
2 голосов
/ 02 февраля 2011

В моем приложении Python есть страница, в которой есть раскрывающийся список местоположений, связанных с текущим пользователем, с именами местоположений в качестве видимых значений раскрывающегося списка. То, что я хочу сделать, - это позволить пользователю выбрать одно из этих мест, чтобы связать его с их текущим местоположением. Когда пользователь добавляет новое местоположение, оно создается как дочерняя сущность этого пользователя, поэтому я заполняю раскрывающийся список следующим образом:

locinfo = db.GqlQuery("SELECT * FROM Location WHERE ANCESTOR IS :1", userinfo)

... и вот как я собираюсь отобразить раскрывающийся список на сайте (значение i.key является просто заполнителем, я объясню).

<select name="lockey">
    {% for i in locinfo %}
        <option value="{{i.key}}">{{i.locname}}</option>
    {% endfor %}
</select>

Итак, я хочу добавить ссылку на один конкретный объект Location в записи пользователя. В обычной реляционной базе данных я получал бы первичный ключ каждого местоположения, распечатывал их как значение каждого параметра и сохранял их в записи пользователя как ссылку на текущее местоположение пользователя. Однако я огляделся по сторонам и ничего не нашел по поводу извлечения ключа, и чем больше я осматриваюсь, тем больше у меня складывается впечатление, что я поступаю неправильно.

Есть предложения?

1 Ответ

2 голосов
/ 02 февраля 2011

Ключи в хранилище данных представлены объектами, а не простыми значениями (см. здесь )

Для любого объекта в хранилище данных вызовите его метод .key(), чтобы получить его ключевой объект, а затем вы можете получить печатное представление, приведя его к строке.

Вы можете установить это в коде представления, который готовит данные для шаблона, или, если вы хотите просто вызвать i.key в своем шаблоне, вы можете создать свойство только для чтения в этом классе модели ,

...