Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python list_of_post()获取了意外的关键字参数';slug';_Python_Django - Fatal编程技术网

Python list_of_post()获取了意外的关键字参数';slug';

Python list_of_post()获取了意外的关键字参数';slug';,python,django,Python,Django,我正在学习一个教程,但是这个教程的django版本与我的2.0.5版本不同。所以,我得到了这个问题: list_of_post() got an unexpected keyword argument 'slug' Request Method: GET Request URL: http://127.0.0.1:8000/blog/a-test/ Django Version: 2.0.5 Exception Type: TypeError Exception Value: li

我正在学习一个教程,但是这个教程的django版本与我的2.0.5版本不同。所以,我得到了这个问题:

list_of_post() got an unexpected keyword argument 'slug'
Request Method: GET
Request URL:    http://127.0.0.1:8000/blog/a-test/
Django Version: 2.0.5
Exception Type: TypeError
Exception Value:    
list_of_post() got an unexpected keyword argument 'slug'
Exception Location: /Users/sumeixu/anaconda3/lib/python3.6/site-packages/django/core/handlers/base.py in _get_response, line 126
Python Executable:  /Users/sumeixu/anaconda3/bin/python
Python Version: 3.6.3
Python Path:    
['/Users/sumeixu/djangotest',
 '/Users/sumeixu/anaconda3/lib/python36.zip',
 '/Users/sumeixu/anaconda3/lib/python3.6',
 '/Users/sumeixu/anaconda3/lib/python3.6/lib-dynload',
 '/Users/sumeixu/anaconda3/lib/python3.6/site-packages',
 '/Users/sumeixu/anaconda3/lib/python3.6/site-packages/aeosa']
Server time:    Thu, 7 Jun 2018 15:00:29 +0000
blog/view.py

def post_detail(request,slug):
    post = get_object_or_404(Post,slug=slug)
    template = 'blog/post/post_detail.html'
    return render(request,template,{'post':post}) 
post_of_detail.html

{% extends 'blog/post/base.html' %}

{% block title %}{{post.seo_title}}{% endblock %}

{% block content %}
         <h2>{{ post.title }}</h2>
         <p>Written by {{post.author }} on {{post.published}}</p>
         <hr>
         {{posts.content}
{% endblock %}
{%extends'blog/post/base.html%}
{%block title%}{{post.seo_title}{%endblock%}
{%block content%}
{{post.title}}
由{{post.author}}在{post.published}上写的


{{posts.content} {%endblock%}
post.html的列表

{% extends 'blog/post/base.html' %}

{% block title %}List of blog post{% endblock %}

{% block content %}
     {% for posts in post %}
         <h2><a href="{{posts.get_absolute_url}}">{{ posts.title }}</a></h2>
         <p>Written by {{ posts.author }} on {{ posts.published}}</p>
         <hr>
         {{ posts.content}}
     {% endfor %}
{% endblock %}
{%extends'blog/post/base.html%}
{%block title%}博客文章列表{%endblock%}
{%block content%}
{post%中的post%为%s}
由{{posts.author}}在{{posts.published}上撰写


{{posts.content} {%endfor%} {%endblock%}
blog/url.py

from django.conf.urls import url
from django.urls import path
from . import views

app_name = 'blog'
urlpatterns =[
    path('',views.list_of_post,name='list_of_post'),
    path('<slug:slug>/',views.list_of_post,name='post_detail')
]
从django.conf.url导入url
从django.url导入路径
从。导入视图
应用程序名称='博客'
URL模式=[
路径(“”,views.list_of_post,name='list_of_post'),
路径('/',视图.列表,名称='post\u detail')
]

如果这太简单了,我很抱歉。但我还是一个程序员初学者。需要一些帮助。谢谢。

在您的
url.py
中,您写道:

from django.conf.urls import url
from django.urls import path
from . import views

app_name = 'blog'
urlpatterns =[
    path('',views.list_of_post,name='list_of_post'),
    path('<slug:slug>/',views.list_of_post,name='post_detail')
]

通过将post的列表链接到第二个路径(…)Django将使用
slug
参数调用此函数,但该函数当然无法处理此问题,因此
TypeError

您可能复制了第二个路径,并且无法更改视图(到
post\u detail
).正确!!这似乎是个打字错误。但我自己都没注意到。非常感谢!!!
from django.conf.urls import url
from django.urls import path
from . import views

app_name = 'blog'
urlpatterns =[
    path('',views.list_of_post,name='list_of_post'),
    path('<slug:slug>/',views.post_detail,name='post_detail')
]