@Vlad1987
учу Python

Почему возникает ошибка 404 при переходе на страницу с формой?

Добрый день!

Не могу понять почему при переходе по ссылке на страницу с формой выскакивает ошибка 404 следующего содержания:
Request Method:	GET
Request URL:	http://localhost:8000/news/add-news/
Raised by:	news.views.ViewNews


Джанго почему-то указывает на представление ViewNews, хотя за форму у меня отвечает совершенно другое представление: CreateNews.

По порядку:
1. Ссылка на страницу с формой:
<li class="nav-item"><a class="nav-link" href="{%url 'add_news'%}">Добавить новость</a></li>


2. Путь из url.py для этой ссылки:
path('news/add-news/', CreateNews.as_view(), name='add_news')


3. Вьюха CreateNews:
class CreateNews(CreateView): 
    form_class = NewsForm
    template_name = 'news/add_news.html'


На всякий случай напишу здесь метод get_absolute_url для модели News, потому что я так понимаю он на что-то влияет в данном случае:
def get_absolute_url(self):
        return reverse('view_news', kwargs={'slug': self.slug})


и метод ViewNews, раз уж на него ссылается Джанго:
class ViewNews(DetailView):  
    model = News
    context_object_name = 'news_item'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['unwanted_link'] = News.objects.get(slug=self.kwargs['slug']).category.pk
        return context


Заранее большое спасибо за помощь!
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
@bacon
Потому что ViewNews раньше перехватывает /news/add-news/, считая add-news slug'ом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
07 мар. 2021, в 03:18
1500 руб./за проект
06 мар. 2021, в 22:58
70000 руб./за проект
06 мар. 2021, в 22:36
10000 руб./за проект