Заполните поле модели значением по умолчанию вместо нуля - PullRequest
0 голосов
/ 29 ноября 2018

Моя модель определена так:

class Activity(models.Model):
    country = models.CharField(max_length=100, default="Unknown")

country поле заполнено из ответа JSON, но иногда недоступно.

В настоящее время я получаю

django.db.utils.IntegrityError: Сбой ограничения NOT NULL: explorer_api_activity.country

Я пробовал различные комбинации null=True, blank=True и избавился от значения по умолчанию,а также удаление миграций и базы данных, но безрезультатно.

Я хочу заполнить поле "Неизвестно" всякий раз, когда встречается ноль.Как мне это сделать?

1 Ответ

0 голосов
/ 29 ноября 2018

Как насчет:

country = models.CharField(max_length=100, null=True, default=None)

Обновление

Если вы настаиваете на сохранении вашей текущей модели (не делайте поле обнуляемым или в нем есть строка), то всякий раз, когда вы сохраняетеДанные JSON для моделирования, убедитесь, что строка хранится в стране.Например:

YourModel.objects.create(other_field='data', country=json_data.get('country', "Unknown"))

В настоящее время, когда вы сохраняете модель, когда у данных json нет страны, вы отправляете None в качестве параметра.Вот почему вы получаете Not Null constrain error.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...