反向 'todo-user',未找到参数 '('',)'。尝试了 1 种模式

Reverse for 'todo-user' with arguments '('',)' not found. 1 pattern(s) tried

我试图在单击 link 时添加用户,但出现以下错误:

Reverse for 'todo-user' with arguments '('',)' not found. 1 pattern(s) tried: ['todo/(?P[^/]+)/$']

我的views.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 变量:

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

但在您用于呈现模板的上下文中,没有定义此类变量。添加

'todo': todo_instance

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