№1 Практическая онлайн-школа обучения языкам программирования Python (Django), JavaScript, Kotlin В. Бовсуновского.

Специальная, подарочная акция получения доступа к Django4!

Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.

9. Допишем все поля модели комментариев.

Все что мы делаем - это мы уже делали, сложностей здесь не вижу.

Перейти к уроку

10. Допишем методы модели, для комментариев для блога.

Здесь все просто.

Нам нужно лайки подсчитать? Нужно. Давайте это сделаем прямо в модели.

Нам нужно вывести пост на странице и имя автора комментария? Нужно. Напишем метод.

Нам нужно сделать url? - сделаем по get_absolute_url().

И на последок в админку пропишем.

Перейти к уроку

11. Напишем класс удаление поста DeleteView.

class PostDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView):.....

Для того, что бы написать код удаления поста или любого другого контента, не важно какого мы можем использовать единый принцип.

LoginRequiredMixin - проверить что пользователь авторизован.

UserPassesTestMixin - прописать и проверить права пользователя на удаление(здесь важно прописать метод (кстати, это в джанго пришло с библиотеки django-braces).

DeleteView - удалить, при помощи спец. класса.

Разберём подробнее.

Перейти к уроку

12. Бонус, как ещё можно использовать UserPassesTestMixin?

Расскажу, как ещё можно использовать UserPassesTestMixin.

Перейти к уроку

13. Пропишем переменные и методы класса PostDeleteView.

По документации, что бы написать класс для удаления нам нужно:

-

from django.urls import reverse_lazy
from django.views.generic.edit import DeleteView
from myapp.models import Author

class AuthorDeleteView(DeleteView):
    model = Author
    success_url = reverse_lazy('author-list')

-

Нам с вам нужно будет дописать ещё метод, что бы проверить действительно ли запись принадлежит пользователю.

По такому принципу можно удалять любые форматы страниц, видео, аудио и т. д.

-

def test_func(self):
    .........

Перейти к уроку