Django - Ошибка целостности при попытке удаления проекта
У меня есть только одна модель, и это единственная модель, которая мне нужна. Как спроектировать модель таким образом, чтобы не получить ошибку ограничения внешнего ключа?
Вот моя модель:
class Project(models.Model):
STATUS = (
('Inititated', 'Inititated'),
('Paused', 'Paused'),
('In progress', 'In progress'),
('Aborted', 'Aborted'),
('Completed', 'Completed')
)
PHASE = (
('1', '1'),
('2', '2'),
('3', '3'),
('4', '4'),
('5', '5'),
('6', '6'),
('7', '7'),
('8', '8'),
('9', '9'),
('10', '10')
)
p_id = models.IntegerField(null=True)
p_name = models.CharField(max_length=100, null=True)
c_name = models.CharField(max_length=100, null=True)
c_mail = models.CharField(max_length=100, null=True)
init_date = models.DateField(null=True)
ect = models.DateField(null=True)
status = models.CharField(max_length=200,null=True, choices=STATUS)
collabs = models.IntegerField(null=True)
phase = models.IntegerField(null=True, choices=PHASE)
def __str__(self):
return self.p_name
@property
def phase_percentage(self):
return self.phase * 10
Ваша проблема заключается в phase = models.IntegerField(null=True, choices=PHASE)
. Потому что, как мы видим, это IntegerField
, но вы предоставляете ему выбор со строками:
PHASE = (
('1', '1'),
('2', '2'),
(...)
('10', '10')
)
Измените его на:
PHASE = (
(1, "1"),
(2, "2"),
...
(3, "3")
)
Потому что первое значение - это значение, фактически передаваемое в поле, а второе - "человекочитаемое" значение, которое отображается в формах и т.д.
Перед удалением вам может понадобиться изменить значение этого поля в ваших объектах.