Может сделать миграцию в 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:
- Предоставить одноразовое значение по умолчанию сейчас (будет установлено для всех существующих строк с нулевым значением для этого столбца)
- Выйти и вручную определить значение по умолчанию в models.py. Выберите опцию:
как я могу решить эту проблему?
Yess Surly.... Вы можете перенести созданные модели в back admin, выполнив следующую команду:
python manage.py makemigration
python manage.py migrate
Это безымянная спецификация в Django и SQL базах данных в целом IMO. Джанго не может самостоятельно добавить новое поле без нуля, не указав значение по умолчанию. Даже если в базе данных уже нет строк, если для модели уже была сделана миграция ранее, добавление нового поля в модель и новая миграция потребует указать разовое значение по умолчанию для добавляемого поля или вы можете указать значение по умолчанию непосредственно в коде.
По этому поводу был поднят тикет, но он был закрыт с резолюцией "Cleanup/optimization (wontfix)"