Начало
работы над приложением
399
db.sqlite3 learning_log learning_logs ll_env manage.py
❷
(ll_env)learning_log$
ls learning_logs/
admin.py __init__.py migrations models.py tests.py views.py
Команда
startapp
имя_приложения
приказывает Django создать инфраструктуру,
необходимую для построения приложения. Заглянув сейчас в каталог проекта, вы
найдете в нем новый подкаталог с именем
learning_logs
. Откройте этот каталог,
чтобы увидеть, какие файлы были созданы Django
. Самые важные файлы в этом
каталоге —
models .py
,
admin .py
и
views .py
. Файл
models .py
будет использоваться для
определения данных, которыми нужно управлять в нашем приложении. К файлам
admin .py
и
views .py
мы вернемся позднее.
Определение
моделей
Подумаем, какие данные нам понадобятся. Каждый пользователь создает набор
тем в своем журнале. Каждая запись, которую он сделает, будет привязана к опре-
деленной теме, а записи будут выводиться в текстовом виде. Также необходимо
хранить временную метку каждой записи, чтобы пользователь знал, когда эта за-
пись была создана.
Откройте файл
models .py
и просмотрите его текущее содержимое:
models.py
from django.db
import models
# Создайте здесь свои модели.
Модуль с именем
models
импортируется автоматически, и нам предлагается создать
свои модели.
Модель
сообщает Django, как работать с данными, которые будут хра-
ниться в приложении. С точки зрения кода модель представляет собой обычный
класс; она содержит атрибуты и методы, как и все остальные классы, рассматри-
вавшиеся нами ранее. Вот как выглядит модель тем обсуждения, которые будут
сохраняться пользователями:
from django.db import models
class Topic(models.Model):
"""Тема, которую изучает пользователь"""
❶
text = models.CharField(max_length=200)
❷
date_added = models.DateTimeField(auto_now_add=True)
❸
def __str__(self):
"""Возвращает строковое представление модели."""
return self.text
Мы создали класс с именем
Topic
, наследующий от
Model
— родительского клас-
са, включенного в Django и определяющего базовую функциональность модели.
В класс
Topic
добавляются два атрибута:
text
и
date_added
.