Integrity-error django :violates not-null constraint

Я создаю приложение для социальных сетей, где все действия завершаются в одном и том же графе. Однако при использовании кнопки like я получаю ошибку, даже если код выглядит точно так же, как и в версии dislike. Ошибка выглядит так:

IntegrityError at /like-post
null value in column "num_interactions_total" of relation "core_likepost" violates not-null constraint
DETAIL:  Failing row contains (98, a4aaa95b-a3a5-49a6-8f63-de768bfa0786, 2023-02-02 18:01:13.121023+00, , 1, null, 7).

но счетчик num_interactions_total уже удален и больше не существует ни в модели, ни в views.py. Я также удалил миграции. Я использую базу данных postgresql.

Я немного запутался, почему он выдает ошибку только с этой кнопкой, а не со всеми остальными... Как мне избежать ошибки нуля?

Вот модели и мнения из разряда "нравится" и "не нравится":

Я знаю, что код довольно грязный. Но откуда берется ошибка?

Проблема в том, что вы удалили в models.py, миграции, но забыли удалить в базе данных.

Вы можете вручную удалить его в db, или сделать это с помощью команд консоли

Предположим, у вас есть 2 миграции в приложении test_app:

  1. 0001_test_1.py

  2. 0002_test_2.py #have column num_interactions_total

Теперь хочу удалить num_interactions_total. Вы можете отменить миграции следующим образом:

python manage.py migrate test_app 0001_test_1

Вы вернете базу данных в миграцию 0001_test_1, вернете все изменения в 0002_test_2 - удалите столбец num_interactions_total

Вернуться на верх