Почему я получаю IntegrityError при нулевом значении в несуществующем столбце... Django
Я пытаюсь обратиться к внешнему api, когда пользователь отправляет форму. Я использую Django и Postgresql
Моя модель
class League_Mod(models.Model):
host = models.CharField(max_length=50)
Espn_League_Id = models.IntegerField(unique = True)
Espn_S2 = models.CharField(max_length=3000)
Espn_Swid = models.CharField(max_length=300)
bigdata = models.JSONField(default=dict,null=True)
Мой сериализатор
class Meta:
model = League_Mod
fields = ['host', 'Espn_League_Id','Espn_S2','Espn_Swid','bigdata']
Виды
где Owners - большой словарь.
league_data = {
'host' : request.data['host'],
'Espn_League_Id' :request.data['Espn_League_Id'],
'Espn_S2' : request.data['Espn_S2'],
'Espn_Swid' : request.data['Espn_Swid'],
'bigdata' : Owners
}
serializer = LeagueSerializer(data=league_data)
print(serializer)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response(serializer.data)
мой сериализатор печати работает и печатает данные правильно.
Но я получаю ошибку:
integrityError at /wel/
null value in column "hello" of relation "api_league_mod" violates not-null constraint
DETAIL: Failing row contains (11, JPFL, 216415, AEAylLD7uSQQ7%2BenPr6av1H%2Fx0Hqbbpn8Jvr91ngxM1ll5ynO685mhN%2BSu..., {D19D67CA-C981-4CA2-8463-AF4111D2E8E2}, {"Person1": {"2010": [0, 1, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 6,..., null).
Мне очень непонятно, где находится колонка hello... и нет никакой связи с api_league_mod Model, поэтому не совсем понятно, почему мой сериализатор возвращает unvalid
Любое понимание будет оценено по достоинству. Спасибо!
Столбец hello
, вероятно, присутствует в базе данных, что означает, что он был в вашей модели League_Mod
и был удален позже. Однако это удаление не отражено ни в одной из ваших миграций.
Вы можете попробовать запустить manage.py makemigrations
и проверить вывод, это может создать операцию удаления для поля hello
.
Затем выполните manage.py migrate
для применения изменений к БД