Внесите файл ForeignKey в мою модель проекта

У меня есть система, которая использует,

class MyModel(models.Model)
    book_classes = (("","Select"),("1",'F1'),("2",'F2'),("3",'F3'),("4",'F4'))
    b_class = models.CharField('Form',max_length=4,choices=book_classes,default="n/a")

Я хотел бы переключить его на использование внешнего ключа из модели Klass

class Klass(models.Model):
    name = models.CharField(max_length=20)

class MyModel(models.Model)
    b_class = models.ForeignKey(Klass,on_delete=models.CASCADE)

В системе уже есть много данных, которые используют

class MyModel(models.Model)
    book_classes = (("","Select"),("1",'F1'),("2",'F2'),("3",'F3'),("4",'F4'))
    b_class = models.CharField('Form',max_length=4,choices=book_classes,default="n/a")

Какое влияние окажет изменение на уже существующие данные?

Это испортит данные, сохраненные в базе данных.
b_class это CharField теперь вы конвертируете его в ForeignKey, что приведет к опустошению данных.

Лучшим способом будет:
1- Экспортировать текущие данные в csv.
2- Создать новый класс class Klass 3- Ввести данные в новый класс с тем же форматом:
id = 1 , name = F1
id = 2 , name = F2
,...

3- Затем конвертируйте ваш MyModel в новый формат.
4- импортируйте данные из csv

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