Django 5 для начинающих

Прогресс по курсу:  9/1004

3.4 Организация связей между таблицами
3 из 11 шагов пройдено
0 из 53 баллов  получено

Задача 5

Задание:

Напишите класс модели Department, содержащую следующие поля:

  • department_id: Поле первичного ключа, тип поля IntegerField.
  • name: Поле имени, тип поля CharField, необходимо ограничить длину до 200 символов.


Напишите класс модели Course, содержащую следующие поля:

  • course_id: Поле первичного ключа, тип поля IntegerField.
  • departments: Поле связи «многие-к-одному» к модели Department, установите значение по умолчанию для внешнего ключа в зависимой таблице по умолчанию равным 1.
  • name: Поле имени, тип поля CharField, необходимо ограничить длину до 50 символов.


Напишите класс модели Student, содержащую следующие поля:

  • student_id: Поле первичного ключа, тип поля IntegerField.
  • first_name: Поле имени студента, тип поля CharField, необходимо ограничить длину до 200 символов.
  • last_name: Поле фамилии студента, тип поля CharField, необходимо ограничить длину до 200 символов.
  • courses: Поле связи «многие-ко-многим» к модели Course.
  • date_of_birth: Поле даты рождения, тип поля DateField.


P.S. На экран ничего не нужно выводить.

Чтобы решить это задание откройте https://stepik.org/lesson/1146711/step/9

Напишите программу. Тестируется через stdin → stdout

Верно решили 122 учащихся
Из всех попыток 21% верных
Time Limit: 30 секунд
Memory Limit: 256 MB
Максимум 10 баллов за решение.

Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий

для параметра on_delete установлено значение models.SET_DEFAULT, а значение по умолчанию для внешнего ключа задается с помощью параметра default. Это должно решить проблему, с которой многие сталкиваются.
class Course(models.Model):
departments = models.ForeignKey(Department, on_delete=models.SET_DEFAULT, default=1)
 

@Konstantin_Chekhovich, не понятно, почему в этом задании про это не написали - в предыдущих было

Добрый день! Подскажите, пожалуйста

... (sorry, удалил код решения) ...

Правильно понимаю, что курсы принадлежат департаментам (курсы дочерняя таблица, департаменты родительская), при удалении департамента курс не удаляется, а значение id департамента в таблице курса устанавливается как "1"?

Изменен Sergey Udachin

@Sergey_Udachin, да, всё правильно понимаете.

Что у меня не так не пойму? все по условию написал

@Дмитрий_Чекмасов, уведомления о комментариях приходят с задержкой, вечером до двух часов может быть.

@Дмитрий_Селезнев, ага, я давно заметил это. Но вопрос не удалил для другого вопроса - почему primaty_key здесь обязательный аргумент? 

@Дмитрий_Чекмасов, этим мы устанавливаем данное поле в качестве первичного ключа, что требуется по условию задачи.
Посмотрите, в теории это проходили: https://stepik.org/lesson/1146709/step/1?unit=1158607.