Ошибка NoReverseMatch после книги курса Python CrashPython

Программы на Python
Ответить
Гость
 Ошибка NoReverseMatch после книги курса Python Crash

Сообщение Гость »


Я работал над главой Django в книге «Ускоренный курс Python» и столкнулся с проблемой на странице «Создать новую запись». Когда я пытаюсь получить доступ к странице, выдает следующую ошибку:
NoReverseMatch в /topics/2/
Обратный вариант для 'new_entry' с аргументами '('',)' не найден. 1 шаблон(ы) опробовано: ['new_entry/(?P[0-9]+)/\\Z'] и отображает ошибку в моем файле theme.html:

{% расширяет 'learning_logs/base.html'%} {%блокировать контент%} Тема: {{topic}}

Записи:
Добавить новую запись {%для записи в записях%}
{{entry.date_added|date:'M d, Y H:i' }}

{{ вход.текст|разрывы строк }}
{%пустой%} [*]По этой теме пока нет записей. {%endfor%} {%контент блока%}
new_entry.html

{% расширяет "learning_logs/base.html" %} {% блокирует контент %} {{ theme }}

Добавить новую запись:
{% csrf_token %} {{ form.as_p }} Добавить запись {% контента в конце блока %}
Как указано в книге, я также написал представление и URL-адрес страницы

def new_entry в view.py:

из django.shortcuts импорт рендеринг, перенаправление из темы импорта .models из .forms импорт TopicForm, EntryForm индекс защиты (запрос): #домашняя страница вернуть рендер (запрос, 'learning_logs/index.html') темы определения (запрос): #показать темы темы = Topic.objects.order_by('date_added') контекст = {'темы': темы} вернуть рендер (запрос, 'learning_logs/topics.html', контекст) Защитная тема (запрос, theme_id): #показать отдельную тему и детали тема = Topic.objects.get(id=topic_id) записи = theme.entry_set.order_by('-date_added') контекст = {'темы': тема, 'записи': записи} вернуть рендеринг (запрос, 'learning_logs/topic.html', контекст) защита new_topic (запрос): #добавить новую тему если запрос.метод != 'POST': #данные не отправлены, создайте пустую форму форма = ТемикФорма() еще: # POST-данные, отправленные данные процесса форма = TopicForm(данные=request.POST) если form.is_valid(): форма.сохранить() return redirect('learning_logs:topics') #отобразить пустую или недействительную форму контекст = {'форма': форма} вернуть рендеринг (запрос, 'learning_logs/new_topic.html', контекст) Защиту new_entry (запрос, theme_id): #добавить новую запись по определенной теме тема = Topic.objects.get(id=topic_id) если запрос.метод != 'POST': #данные не отправлены, создайте пустую форму форма = Форма записи() еще: #POST данные отправлены, обрабатываются данные форма = EntryForm(данные=request.POST) если form.is_valid(): new_entry = form.save(commit = False) new_entry.topic = тема new_entry.save() return redirect('learning_logs:topic', theme_id=topic_id) #отобразить пустую или недействительную форму контекст = {'тема': тема, 'форма': форма} вернуть рендеринг (запрос, 'learning_logs/new_entry.html', контекст) urls.py

urlpatterns = [ #домашняя страница путь('',views.index, name='index'), Страница #topics path('topics/',views.topics, name='topics'), Страница #detail для одной темы path('topics//',views.topic, name='topic'), #страница для добавления новой темы path('new_topic/',views.new_topic, name='new_topic'), #страница для добавления новой записи path('new_entry//',views.new_entry, name='new_entry'), ] Я проверил несколько раз и не уверен, что не так?

Любая помощь будет оценена
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»