Недавно я начал использовать Pony ORM, и я думаю, что это здорово. Несмотря на то, что API хорошо задокументировано на официальном сайте, мне трудно работать с отношениями. В частности, я хочу вставить новый объект, который является частью набора. Однако я не могу найти способ создать объект без предварительного извлечения связанных объектов:
post = Post(
#author = author_id, # Python complains about author's type, which is int and should be User
author = User[author_id], # This works, but as I understand it actually fetches the user object
#author = User(id=author_id), # This will try and (fail to) create a new record for the User table when I commit, am I right?
# ...
)
В итоге в таблицу вставляется только значение id
, зачем мне извлекать весь объект, если мне нужен только идентификатор?
РЕДАКТИРОВАТЬ
У меня был быстрый просмотр исходного кода Pony ORM, и использование первичного ключа обратной сущности должно работать, но даже в этом случае мы в конечном итоге вызываем _get_by_raw_pkval_
, который извлекает объект либо из локального кеша, либо из базы данных, поэтому, вероятно, это не так. возможный.