Django: добавить запись в таблицу базы данных, если ее еще нет - PullRequest
1 голос
/ 25 марта 2020

Я учусь Django Rest Framework. Я работал над небольшим проектом, где я работаю над 4 моделями (таблицами базы данных). Модели: 1. Игра 2. GameCategory 3. Игрок 4. PlayerScore.

Таблица Игра имеет 5 столбцов, в которых категория это внешний ключ, который связывает таблицы Game и GameCategory. Ниже приведена полезная нагрузка JSON для API.

"url": "http://127.0.0.1:8000/games/3/",
"category": "Shooting",
"name": "PUB G",
"release_date": "2016-11-29",
"played": true

Таблица GameCategory имеет имя одного столбца.

Мой текущий код таким образом, что, если я вставлю в таблицу Game запись с категорией, которой нет в таблице GameCategory, я получу следующее сообщение об ошибке.

"category": [
        "Object with name=ABC does not exist."
    ]

Но я хочу, чтобы она была в таким образом, когда данные игры получают значение для категории, которой нет в GameCategory, тогда эта категория должна автоматически добавляться в таблицу GameCategory,

Извините, если она слишком базовая c вопрос. Я искал везде, не мог найти ответ, а также я за эту платформу и для веб-разработки. Заранее спасибо.!

1 Ответ

1 голос
/ 25 марта 2020

Вы можете использовать get_or_create или update_or_create, чтобы помочь справиться с этим сценарием.

instance, created = Model.objects.get_or_create(
    foo='bar',
    defaults={'spam': 'eggs'},
)
...