Начало
работы над приложением
405
Класс
Entry
наследует от
базового класса
Model
, как
и рассмотренный ранее класс
Topic
. Первый атрибут,
topic
, является экземпляром
ForeignKey
. Термин
внешний ключ
(foreign key) происходит из теории баз данных; внешний ключ со-
держит ссылку на другую запись в базе данных. Таким образом каждая запись
связывается с конкретной темой. Каждой теме при создании присваивается ключ,
или идентификатор. Если потребуется установить связь между двумя записями
данных, Django использует ключ, связанный с каждым блоком информации. Вскоре
мы используем такие связи для получения всех записей, связанных с заданной те-
мой. Аргумент
on_delete=models.CASCADE
сообщает Django, что при удалении темы
все записи, связанные с этой темой, также должны быть удалены (это называется
каскадным удалением
).
Затем идет атрибут с именем
text
, который является экземпляром
TextField
.
Полю такого типа ограничение размера не требуется, потому что размер отдельных
записей не ограничивается. Атрибут
date_added
позволяет отображать записи в по-
рядке их создания и снабжать каждую запись временной меткой.
В точке
класс
Meta
вкладывается в класс
Entry
. Класс
Meta
хранит дополнитель-
ную информацию по управлению моделью; в данном случае он позволяет задать
специальный атрибут, который приказывает Django использовать форму мно-
жественного числа
Entries
при обращении более чем к одной записи. (Без этого
Django будет использовать
неправильную форму
Entrys
.)
Метод
__str__()
сообщает Django, какая информация должна отображаться при
обращении к отдельным записям. Так как запись может быть достаточно длинным
блоком текста, мы приказываем Django выводить только первые 50 символов
.
Также добавляется многоточие — признак вывода неполного текста.
Миграция
модели Entry
Так как мы добавили новую модель, миграцию базы данных необходимо провести
снова. Вскоре вы привыкнете к этому процессу: вы изменяете
models .py
, выполняете
команду
python
manage.py
makemigrations
имя_приложения
, а затем команду
python
manage.py
migrate
.
Проведите миграцию базы данных и проверьте вывод:
(ll_env)learning_log$
Достарыңызбен бөлісу: