446
Глава 19 •
Учетные записи пользователей
views.py
...
@login_required
def topics(request):
...
@login_required
def topic(request, topic_id):
...
@login_required
def new_topic(request):
...
@login_required
def new_entry(request, topic_id):
...
@login_required
def edit_entry(request, entry_id):
...
Попробуйте обратиться к любой из этих страниц без выполнения входа: вы будете
перенаправлены обратно на страницу входа. Кроме того, вы не сможете щелкать на
ссылках на такие страницы, как
new_topic
. Но если ввести URL
http://localhost:8000/
new_topic/
, вы будете перенаправлены на страницу входа. Ограничьте доступ ко
всем URL-адресам, связанным с личными данными пользователей.
Связывание данных
с конкретными пользователями
Теперь данные, отправленные пользователем, необходимо связать с тем пользо-
вателем, который их отправил. Связь достаточно установить только с данными,
находящимися на высшем уровне иерархии, а низкоуровневые данные последуют
за ними автоматически. Например, в приложении Learning Log на высшем уровне
находятся темы, а каждая запись связывается с некоторой темой. Если каждая тема
принадлежит конкретному пользователю, мы сможем отследить владельца каждой
записи в базе данных.
Изменим модель
Topic
и добавим отношение внешнего ключа к пользователю.
После этого необходимо провести миграцию базы данных. Наконец, необходимо
изменить некоторые представления, чтобы в них отображались только данные,
связанные с текущим пользователем.
Изменение модели Topic
В
файле
models .py
изменяются всего две строки:
Достарыңызбен бөлісу: