Django:work()缺少1个必需的位置参数:';项目id';

Django:work()缺少1个必需的位置参数:';项目id';,django,sqlite,Django,Sqlite,当我尝试运行页面/work/时,我收到以下错误消息: TypeError at /work/ work() missing 1 required positional argument: 'project_id' Request Method: GET Request URL: http://72.132.209.86:8000/work/ (Not my real ip) Django Version: 2.0.5 Exception Type: TypeError Excep

当我尝试运行页面/work/时,我收到以下错误消息:

TypeError at /work/

work() missing 1 required positional argument: 'project_id'
Request Method: GET

Request URL:    http://72.132.209.86:8000/work/ (Not my real ip)

Django Version: 2.0.5

Exception Type: TypeError

Exception Value:    
work() missing 1 required positional argument: 'project_id'
Exception Location: /usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py in _get_response, line 126

Python Executable:  /usr/bin/python3

Python Version: 3.5.2
我的代码是: views.py

url.py

path('work/', views.work, name='work'),
path('<int:project_id>/', views.project, name='project'),
work.html

{% extends 'mywebsite/base.html' %}
{% block content %}
    <ul>

    {% for project in projectslist %}
    <li><a href="{% url 'project' project.id %}">Testtest</a></li>
    {% endfor %}
    </ul>

{% endblock %}
{%extends'mywebsite/base.html%}
{%block content%}
    {projectslist%中项目的%s}
  • {%endfor%}
{%endblock%}

我确实知道链接有问题,即它无法识别project.id,但我不知道这个问题的根源是什么。我使用的数据库是sqlite3,我注册了两个项目(在pk=3和pk=4上)

您在URL中定义了一个
project\u id
参数,但处理该参数的视图不接受此参数-您需要将该参数添加到函数签名中:

def project(request, project_id):
    # You probably want to use project_id here to create 
    # the context for your view.
    return render(request, 'mywebsite/project.html')

也就是说,您发布的例外情况是,
work()
视图缺少此参数-因此,请检查您在上面发布的代码是否与项目中的代码完全相同。

文章标题中的错误消息(projectoverview()缺少1个必需的位置参数)与post中的错误不同(work()缺少1个必需的位置参数)-哪一个是正确的?此外,帖子中的错误似乎是指调用的
work()
视图,而不是
project()
视图-在这种情况下,错误不是由您发布的模板代码引起的?我更改了标题,这确实是一个错误的标题,我添加了项目()查看和url,因为我在尝试访问时也会收到相同的错误消息,例如/3/(作为项目的int值,id=3)以及如何添加上下文,我是否必须编写:context={'project\u id':project\u id}或是其他内容。我正在学习django的教程,但这部分我不知道该做什么。我确实添加了一个上下文,现在它可以工作了,谢谢你的时间
{% extends 'mywebsite/base.html' %}
{% block content %}
    <ul>

    {% for project in projectslist %}
    <li><a href="{% url 'project' project.id %}">Testtest</a></li>
    {% endfor %}
    </ul>

{% endblock %}
def project(request, project_id):
    # You probably want to use project_id here to create 
    # the context for your view.
    return render(request, 'mywebsite/project.html')