Может сделать миграцию в django

я не могу перенести эту модель в django

class ApprovedCourse(models.Model):
    course_name = models.CharField(max_length=50)
    provider_college = models.ManyToManyField('processes.College', related_name="provider_college")
    prerequisites = models.ManyToManyField('ApprovedCourse', related_name="courses_that_need_this_course",null=True)
    both_needs = models.ManyToManyField('ApprovedCourse', related_name="courses_required_for_this_course",null=True)
    number_of_course_units = models.IntegerField()
    course_type = models.CharField(max_length=50)


class SemesterCourse(models.Model):
    approved_course=models.ForeignKey('ApprovedCourse', on_delete=models.CASCADE , null=True, related_name='approved_course')
    class_day_and_time = models.CharField(max_length=50)
    exam_date_and_time = jmodels.jDateTimeField()
    exam_location = models.CharField(max_length=50)
    course_professor = models.ForeignKey('users.Professor', on_delete=models.SET_NULL, null=True, related_name="professor_course")
    course_capacity = models.IntegerField()
    current_semester = models.ForeignKey('processes.Semester', on_delete=models.SET_NULL,  null=True, related_name="semester_course")

когда я хочу добавить approved_course filed и makemigration, появляется сообщение Please select a fix:

  1. Предоставить одноразовое значение по умолчанию сейчас (будет установлено для всех существующих строк с нулевым значением для этого столбца)
  2. Выйти и вручную определить значение по умолчанию в models.py. Выберите опцию:

как я могу решить эту проблему?

Yess Surly.... Вы можете перенести созданные модели в back admin, выполнив следующую команду:

python manage.py makemigration

python manage.py migrate

Это безымянная спецификация в Django и SQL базах данных в целом IMO. Джанго не может самостоятельно добавить новое поле без нуля, не указав значение по умолчанию. Даже если в базе данных уже нет строк, если для модели уже была сделана миграция ранее, добавление нового поля в модель и новая миграция потребует указать разовое значение по умолчанию для добавляемого поля или вы можете указать значение по умолчанию непосредственно в коде.

По этому поводу был поднят тикет, но он был закрыт с резолюцией "Cleanup/optimization (wontfix)"

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