Форум сайта python.su
Только начинаю осваивать django и сталкиваюсь периодически с разными ошибками. На многие из них ответ нашел здесь, но с этой все никак.Собственно сама ошибка:
Reverse for ‘topic’ with arguments ‘(’',)' not found. 1 pattern(s) tried:
views.py
def topic(request,topic_id): """Выводит одну тему и все ее записи.""" topic = Topic.objects.get(id=topic_id) entries = topic.entry_set.order_by('-date_added') context = {'topic' : topic, 'entries': entries} return render(request, 'learning_logs/topic.html', context)
from django.conf.urls import url from . import views urlpatterns = ( # Домашняя страница url(r'^$', views.index, name ='index'), # Вывод всех тем. url(r'^topics/$', views.topics, name='topics'), url(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'), )
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> {% extends "learning_logs/base.html" %}</title> </head> <body> {% block content %} <p>Topics</p> <ul> {% for topic in topics %} <li> <a href="{% url 'topic' topic_id %}">{{ topic }}</a> </li> {% empty %} <li> No topics have benn added yet.</li> {% endfor %} </ul> {% endblock content %} </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> {% extends 'learning_logs/base.html' %} </head> <body> {% block content %} <p> Topic: {{ topic }}</p> <p> Entries:</p> <ul> {% for entry in entries %} <li> <p> {{ entry.date_added|date:'M d, Y H:i' }}</p> <p> {{ entry.text|linebreaks }}</p> </li> {% empty %} <li> Нет записей в этом topic. </li> {% endfor %} </ul> {% endblock content %} </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p> <a href="{% url 'index' %}">Learning Log</a> - <a href="{% url 'topics' %}">Topics</a> </p> {% block content %}{% endblock content %} </body> </html>
Офлайн
url(r'^topics/$', views.topics, name='topics'),
url(r'^topics/(?P<topic_id>\d+)/$', views.topic, name='topic'),
Офлайн
FishHookК сожалению не помогло.
Офлайн
{% for topic in topics %} <li> <a href="{% url 'topic' topic_id %}">{{ topic }}</a> </li> {% empty %}
Офлайн
Если изменить topics.html вот так:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> {% extends "learning_logs/base.html" %}</title> </head> <body> {% block content %} <p>Topics</p> <ul> {% for topic in topics %} <li> {{ topic }} </li> {% empty %} <li> No topics have benn added yet.</li> {% endfor %} </ul> {% endblock content %} </body> </html>
Отредактировано pazzetif (Дек. 14, 2017 14:08:32)
Офлайн
FishHookВообще это из книги. По ней учу…
Вот это вот, что это? У вас же нет переменной topic_id
Отредактировано pazzetif (Дек. 14, 2017 14:01:44)
Офлайн
FishHookБуду благодарен, если подскажите как это правильно записать. Уже голову сломал…
Вот это вот, что это? У вас же нет переменной topic_id
Офлайн
Спасибо документации Django.
Заработало таким образом
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> {% extends "learning_logs/base.html" %}</title> </head> <body> {% block content %} <p>Topics</p> <ul> {% for topic in topics %} <li> <a href="{{ topic.id }}/"> {{ topic }}</a> </li> {% empty %} <li> No topics have benn added yet.</li> {% endfor %} </ul> {% endblock content %} </body> </html>
Офлайн