Несколько вопросов здесь.
Нет способа выполнить эту сортировку непосредственно в API хранилища данных, ни в Python, ни в Java - как вы, без сомнения, знаете, хранилище данных не является реляционным, и такие косвенные поиски не поддерживаются.
Если бы это было просто прямое отношение один к одному, которое давало вам средство доступа от объекта Entry
к LastName
, вы могли бы использовать стандартную функцию Python sort
для сортировки списка:
entries.sort(key=lambda e: e.last_name.last_name)
(обратите внимание, что это сортирует список на месте, но возвращает None, поэтому не пытайтесь назначить его из него).
Тем не менее, это не сработает, потому что то, что у вас есть на самом деле, это отношение один-ко-многим: потенциально есть много LastNames для каждой записи. Определение фактически признает это: атрибут collection_name
, который определяет метод доступа от Entry до LastName, называется last_names
, то есть во множественном числе.
Так что то, что вы спрашиваете, на самом деле не имеет смысла: с каким из множества фамилий вы хотите отсортировать? Конечно, вы можете сделать это наоборот - с помощью запроса LastNames, отсортированного по году поступления, - но, учитывая вашу текущую структуру, на самом деле нет никакого способа сделать это.
Должен сказать, хотя, хотя я не знаю остальных ваших моделей, я подозреваю, что вы действительно неправильно установили эти отношения: ReferenceProperty
, вероятно, должен жить на Entry
, указывая скорее на LastName
чем наоборот, как сейчас. Тогда это будет просто вызов сортировки, который я дал выше.