Специальная, подарочная акция получения доступа к Django4!
Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.
class PostDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView):.....
Для того, что бы написать код удаления поста или любого другого контента, не важно какого мы можем использовать единый принцип.
LoginRequiredMixin - проверить что пользователь авторизован.
UserPassesTestMixin - прописать и проверить права пользователя на удаление(здесь важно прописать метод (кстати, это в джанго пришло с библиотеки django-braces).
DeleteView - удалить, при помощи спец. класса.
Разберём подробнее.
Расскажу, как ещё можно использовать UserPassesTestMixin.
По документации, что бы написать класс для удаления нам нужно:
-
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): .........
C url у нас вопрос не должно быть, просто пишем, все это мы уже умеем.
Здесь все банально и просто, пропишем пару строк.
Когда мы переходим к конкретной записи у нас должен появится ссылка на удаление записи, для автора, который эту запись создал.
< 1 2 3 4 5 6 7 8 >