Сохранить внешний ключ в модели django по значению другого поля - PullRequest
0 голосов
/ 27 апреля 2018

Я имею дело с яблоками и ведрами, импортированными из API. Они должны быть записаны в базу данных Django с использованием моделей.

Rest API содержит идентификатор сегментов, который не является внутренним, но сохраняется как external_id в локальной модели сегментов.

Локальная модель Apple имеет поле bucket, которое является полем models:ForeignKey(Bucket).

При получении и хранении данных я не могу выяснить, как соединить эти два. Есть ли способ просто запросить Django для external_id для таблицы сегментов, а затем использовать полученную строку для подключения внешнего ключа?

a = Apple(
    'name' = apple.name
    'count' =  apple.count
    'bucket' = ???
)

a.save()

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете просто сделать следующее:

a = Apple(name=..., count=...)  # note there are no quotes around the field names here
a.bucket = Bucket.objects.get(external_id=external_id_from_your_rest_api)
a.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...