未找到带有参数 '('',)' 的 'todo-user' 的反向操作。已尝试 1 种模式
Posted
技术标签:
【中文标题】未找到带有参数 \'(\'\',)\' 的 \'todo-user\' 的反向操作。已尝试 1 种模式【英文标题】: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
是空的,所以你应该首先显示用于渲染模板的视图。
谢谢!我已经编辑了这个问题,我希望它很好。
【参考方案1】:
在您的模板中,您指的是 todo
变量:
<a href="% url 'todo-user' todo.id %"></a>
但是在您用于渲染模板的上下文中,没有定义这样的变量。添加
'todo': todo_instance
根据您的上下文。您可以删除 'token' 和 'name' 并在模板中使用 todo.name
。
【讨论】:
以上是关于未找到带有参数 '('',)' 的 'todo-user' 的反向操作。已尝试 1 种模式的主要内容,如果未能解决你的问题,请参考以下文章
未找到带有参数 '('',)' 的 'todo-user' 的反向操作。已尝试 1 种模式
未找到带有参数“()”和关键字参数“”的“password_change_done”的反向