Я недавно начал использовать 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
, почему я должен извлекать весь объект, когдаМне нужен только идентификатор?
EDIT
У меня был быстрый взгляд на исходный код ORM для Pony, и использование первичного ключа обратного объекта должно работать, но даже в этом случае мы в конечном итоге вызываем_get_by_raw_pkval_
, который выбирает объект либо из локального кэша, либо из базы данных, поэтому, вероятно, это невозможно.