Python list_of_post()获取了意外的关键字参数';slug';
我正在学习一个教程,但是这个教程的django版本与我的2.0.5版本不同。所以,我得到了这个问题: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
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')
]