Django ошибка 404 django
Всем доброго времени суток. Я новичок в цифровом мире. Учусь на Python по ютубу и книге Мэтиза.
Делаю сайт, но возникла проблема с urls. При попытке открыть страницу topics отображается ошибка 404. Меняла urls, но все тщетно. Далее код из приложения news, в этой папке у меня находится наполнение страниц информацией.
animals/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main.urls')),
path('news/', include('news.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_UR, document_root=settings.MEDIA_ROOT)
news/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.news_home, name='news_home'),
path('create', views.create, name='create'),
path('topics', views.topics, name='topics'),
]
news/vews.py
from django.shortcuts import render, redirect
from .models import Topic, Articles
def topics(request):
topics = Topic.objects.all()
context = {'topics': topics}
return render(request, 'news/topics.html', context)
news/topics.html
{% extends 'main/base.html' %}
{% block title %}Topics{% endblock %}
{% block content %}
{% for topic in topics %}
<li>{{ topic }}</li>
{% empty %}
<li>Нет ничего</li>
{% endfor %}
{% endblock %}
А так же не понимаю, почему в html не отображается цикл for topic in topics. Так как в оболочке все работает.
>>> from news.models import Topic
>>> Topic.objects.order_by('date')
<QuerySet [<Topic: Кошки>, <Topic: Собаки>]>
>>> topics=Topic.objects.all()
>>> for topic in topics:
... print(topic)
...
Кошки
Собаки
>>>
обычно слэш сам подставляется в конце строки запроса. Попробуйте видоизменить код в news/urls.py :
from django.urls import path
from . import views
urlpatterns = [
path('', views.news_home, name='news_home'),
path('create/', views.create, name='create'),
path('topics/', views.topics, name='topics'),
]
Касательно вашей проблемы с django циклом, проверьте находятся ли создаваемые циклом элементы списка в родительском элементе списка (Упорядоченном или Неупорядоченном). Выглядеть это должно примерно так :
<ul>
{% for topic in topics %}
<li>{{ topic }}</li>
{% empty %}
<li>Нет ничего</li>
{% endfor %}
</ul>
Или
<ol>
{% for topic in topics %}
<li>{{ topic }}</li>
{% empty %}
<li>Нет ничего</li>
{% endfor %}
</ol>