【问题标题】:Reverse for 'todo-user' with arguments '('',)' not found. 1 pattern(s) tried未找到带有参数 '('',)' 的 'todo-user' 的反向操作。已尝试 1 种模式
【发布时间】:2019-08-13 15:11:15
【问题描述】:

我在点击链接时尝试添加用户,但出现以下错误:

未找到带有参数“('',)' 的“todo-user”的反向操作。尝试了 1 种模式:['todo/(?P[^/]+)/$']

我的意见.py

def todo_user(request, todo_id):
    todo.username.add(request.user)
    todo.save()
    return render(request, '/')

模板

<a href="{% url 'todo-user' todo.id %}"></a>

Urls.py

path('validate/<todo_id>/', views.todo_user, name='todo-user),

用于模板渲染的 Views.py:

def home(request, token):
            todo_instance = get_object_or_404(Todo, token=token)
            context = {
                'token': todo_instance.token,
                'name': todo_instance.name,
       }
       return render(request, '/', context)

谢谢你们!

【问题讨论】:

  • 错误显示todo.id是空的,所以你应该首先显示用于渲染模板的视图。
  • 谢谢!我已经编辑了这个问题,我希望它很好。

标签: python django django-templates django-views django-urls


【解决方案1】:

在您的模板中,您指的是 todo 变量:

<a href="{% url 'todo-user' todo.id %}"></a>

但是在您用于渲染模板的上下文中,没有定义这样的变量。添加

'todo': todo_instance

根据您的上下文。您可以删除 'token' 和 'name' 并在模板中使用 {{ todo.name }}

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2020-07-02
    • 2022-07-12
    • 2021-11-16
    • 1970-01-01
    • 2021-11-26
    • 2021-01-17
    • 2020-12-28
    • 1970-01-01
    相关资源
    最近更新 更多