Реверс для 'detail' с аргументами '(' ',)' не найден.Попробован 1 шаблон (ов): ['todos \\ / detail \\ / (? P <id>[0-9] +) \\ / $'] - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь создать приложение todo в django.Возникла проблема, когда ссылка на страницу сведений не может перейти на страницу.вот мой код.

**todos/index.html:**
 {% if todo %}

    <ul>

    {% for todos in todo %}
    <li><a href="{% url 'todos:detail' todo.id %}">{{ todos.text }}</a></li>

    {% endfor %}
    </ul>
{% else %}
    <p>No Todo list are available.</p>
{% endif %}


view.py:

from django.shortcuts import render
from django.http import HttpResponse
from .models import Todo
# Create your views here.


def index(request):
    todo =Todo.objects.all()
    context={'todo':todo}
    return render(request, 'todos/index.html',context)

def detail(request,id):
    todo =Todo.objects.get(id=id)
    context={'todo':todo}
    return render(request, 'todos/detail.html',context)


  todos/url.py:
app_name ="todos"

urlpatterns = [
    path('', views.index, name='index'),
    path('detail/<int:id>/', views.detail, name='detail'),
]

** Мне нужно нажать на ссылку, чтобы активировать ссылку:

{{todos.text}} .

это работает, но это не привело меня к странице с подробностями **

1 Ответ

0 голосов
/ 17 февраля 2019

Вы принимаете id за неправильную переменную.Поэтому обновите код следующим образом (я использую тег empty для обработки пустых todos):

<ul>
    {% for todos in todo %}
    <li><a href="{% url 'todos:detail' todos.id %}">{{ todos.text }}</a></li>  // Changed here from todo.id to todos.id
    {% empty %}
    <li> No ToDos </li>
    {% endfor %}
</ul>
...