Я столкнулся со странной проблемой, которая может быть связана с некоторым кешем, который я не могу найти.
У меня есть следующие модели:
class Incubadores(models.Model):
incubador = models.CharField(max_length=10, primary_key=True)
posicion = models.CharField(max_length=10)
class Tareas(TimeStampedModel):
priority = models.CharField(max_length=20, choices=PRIORITIES, default='normal')
incubador = models.ForeignKey(Incubadores, on_delete=models.CASCADE, null=True, db_column='incubador')
info = JSONField(null=True)
datos = JSONField(null=True)
class Meta:
ordering = ('priority','modified','created')
У меня ранее не было аргумента db_column
, поэтому столбец Postgres для этого поля был incubador_id
Я использовал аргумент db_column
, чтобы изменить имя столбца , а затем я запускаю python manage.py makemgrations
и python manage.py migrate
, но я все еще получаю столбец как incubadores_id
всякий раз, когда я выполняю запрос , такой как:
>>> tareas = Tareas.objects.all().values()
>>> print(tareas)
<QuerySet [{'info': None, 'modified': datetime.datetime(2019, 11, 1, 15, 24, 58, 743803, tzinfo=<UTC>), 'created': datetime.datetime(2019, 11, 1, 15, 24, 58, 743803, tzinfo=<UTC>), 'datos': None, 'priority': 'normal', 'incubador_id': 'I1.1', 'id': 24}, {'info': None, 'modified': datetime.datetime(2019, 11, 1, 15, 25, 25, 49950, tzinfo=<UTC>), 'created': datetime.datetime(2019, 11, 1, 15, 25, 25, 49950, tzinfo=<UTC>), 'datos': None, 'priority': 'normal', 'incubador_id': 'I1.1', 'id': 25}]>
Мне нужно изменить имя этого столбца, потому что у меня другие проблемы с сериализаторами. Поэтому изменение необходимо.
- Если я выполню тот же запрос в других моделях, где я также изменил имя поля по умолчанию. Проблема точно такая же.
- Это происходит как в оболочке, так и в коде.
- Я пробовал с разными запросами, чтобы убедиться, что это не связано с системой отложенных запросов Django,но проблема та же. Я также пытался выполнить
django.db.connection.close()
. - Если я делаю прямой SQL-запрос к PostgreSQL, он не может найти
incubador_id
, но только incubador
, что правильно.
Любой может иметь представление о том, что может бытьпроисходит? Я уже 2 дня с этой проблемой, и я не могу найти причину :( Это очень простая операция.
Спасибо!