использовать идентификаторы вместо экземпляров для создания новых объектов с внешними ключами - PullRequest
0 голосов
/ 01 декабря 2011

Я хочу создать новый объект Django ORM с тремя внешними ключами.Я уже получил идентификаторы внешних строк, и я имею в виду - это все, что мне нужно, чтобы заполнить столбцы внешнего ключа в моей новой строке, верно?Однако я не могу создать новую строку без трехкратного нажатия на БД для создания экземпляров объектов из этих идентификаторов.

Итак, что мне нужно сделать:

foreign_object = models.ForeignObject.get(pk=foreign_object_id)
a = models.Object1.get_or_create(f = foreign_object)

ЧтоЯ хотел бы сделать:

a = models.Object1.get_or_create(f_id = foreign_object_id)

f_id однако это поле не распознается Django.Если я просто присваиваю foreign_object_id f (думаю, я вспоминаю, что это работает в некоторых случаях), Django жалуется, что ему нужен экземпляр ForeignObject вместо int.

Есть ли способ сделать это?

1 Ответ

1 голос
/ 01 декабря 2011

В этом случае вам нужно использовать двойное подчеркивание

например

a = models.Object1.get_or_create(f__pk=foreign_object_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...