Модель Django изменить дубликат столбца

0

У меня есть два класса моделей с отношением внешнего ключа, как показано ниже: Проблема по ошибке. Я определил отношение внешнего ключа, используя существующее имя столбца "тип". Как удалить или изменить столбец внешнего ключа 'type'

class LandmarkType(TimeStampedModel):
AIRPORT = 'AIRPORT'
RAILWAYSTATION = 'RAILWAYSTATION'
BUSSTOP = 'BUSSTOP'
OTHER = 'OTHER'
LANDMARK_TYPE_CHOICES = (
    (AIRPORT, 'Airport'),
    (RAILWAYSTATION, 'RailwayStation'),
    (BUSSTOP, 'BusStop'),
    (OTHER, 'Other'),
)
name = models.CharField(max_length=20,
                        choices=LANDMARK_TYPE_CHOICES,
                        default=OTHER)
def __str__(self):  # __unicode__ on Python 2
    return self.name

class Landmark(TimeStampedModel):
type = models.CharField(max_length=200, null=True, blank=True, default='')
name = models.CharField(max_length=200)
description = models.TextField(max_length=2000, null=True, blank=True)
city = models.ForeignKey(City)
latitude = models.DecimalField(max_digits=20, decimal_places=10,      null=True, blank=True, default='12.9667')
longitude = models.DecimalField(max_digits=20, decimal_places=10, null=True, blank=True, default='77.5667')
DISPLAY = const.DISPLAY
HIDE = const.HIDE
DISPLAY_CHOICES = const.DISPLAY_CHOICES
status = models.IntegerField(default=HIDE, choices=DISPLAY_CHOICES)
type = models.ForeignKey(LandmarkType, default=4)
popularity = models.PositiveIntegerField(default=0)
Теги:

2 ответа

0
Лучший ответ

Удалите дублирующее поле, затем перезапустите makemigrations затем makemigrations migrate.

В зависимости от того, сколько у вас ориентиров, вы можете написать миграцию, чтобы повторно заполнить новое поле type, или если их немного, вы можете сделать это вручную.

  • 0
    Спасибо! Это сработало.
0

Используйте клиент командной строки postgresql и выполните ALTER TABLE:

ALTER TABLE Landmark DROP CONSTRAINT "type";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню