找不到带有参数'(',)'的'detail'。尝试了1种模式:['todos \\ / detail \\ //(?P <id> [0-9] +)\\ / $']

时间:2019-02-17 05:50:09

标签: django django-urls

我正在尝试在Django中构建一个Todo应用。链接到详细信息页面时遇到问题,无法链接到该页面。 这是我的代码。

**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 :(得分:0)

    您将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>
    
    相关问题