Django:work()缺少1个必需的位置参数:';项目id';
当我尝试运行页面/work/时,我收到以下错误消息: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
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')