значение NULL в столбце "city_id" нарушает ненулевое ограничение - PullRequest
0 голосов
/ 20 декабря 2018

Эта ошибка возникает, когда я пытался использовать Django admin для добавления новой записи в базу данных.Эта ошибка показывает, даже я пытался добавить новое состояние.Что не так с моей моделью?

class City(models.Model):
    city_id = models.AutoField(primary_key=True)
    city = models.CharField(max_length=100, blank=True, null=True)
    state = models.ForeignKey('State', models.DO_NOTHING, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'city'

    def __str__(self):
        return self.city

class State(models.Model):
    state_id = models.AutoField(primary_key=True)
    state = models.CharField(max_length = 10, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'state'

    def __str__(self):
        return self.state

1 Ответ

0 голосов
/ 20 декабря 2018

Только что обнаружил проблему: это проблема с моей базой данных PostgreSQL.Эта ошибка отображается, даже когда я запускаю INSERT в базе данных.Таким образом, проблема в том, что мой PRIMARY KEY не является значением SERIAL, скорее это INTEGER, поэтому он не может автоматически увеличиваться, когда я вставляю новое значение.

Чтобы решить эту проблему:

  1. Удалите старый целочисленный идентификатор, а также все ограничения внешнего ключа для него.
  2. ALTER TABLE city ADD COLUMN city_id SERIAL PRIMARY KEY
  3. Повторно соедините таблицы с новыми внешними ключами

После этого моя проблема решена.Надеюсь, что это помогает другим людям, сталкивающимся с подобной проблемой!

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