我尝试从我的数据库中获取id并制作类似/article/1/
的内容。 1
是我文章的内容,但它没有用。
views.py
def article(request, article_id):
return render_to_response('article.html', {{'article': Articles.objects.get(id=article_id)}})
my urls.py
from django.urls import path, re_path
from . import views
urlpatterns = [
path('showall/', views.articles, name='articles'),
path('<int:article_id>/', views.articles, name='article'),
]
我收到错误:
TypeError at /article/1/ articles() got an unexpected keyword argument 'article_id'
我还包括我的数据库图像
答案 0 :(得分:2)
看起来您正在使用views.articles
作为文章详情视图:
path('<int:article_id>/', views.articles, name='article'),
您应该使用views.article
代替:
path('<int:article_id>/', views.article, name='article'),
请注意,您可以对article
视图进行一些改进/修复:
get_object_or_404
,以便在数据库中不存在该文章时不会收到服务器错误render
代替过时的render_to_response
{...}
。您目前有双花括号{{...}}
将它们放在一起得到:
from django.shortcuts import get_object_or_404, render
def article(request, article_id):
article = get_object_or_404(Article, id=article_id)
return render(request, 'article.html', {'article': article})
答案 1 :(得分:0)
当views.py
使用article
(注意复数)功能时,urls.py
定义了articles
功能。这是一个拼写错误,还是articles
中有 支持可选views.py
参数的article_id
函数?
答案 2 :(得分:0)
您正在 article / id / 网址中使用views.articles,这很可能是您用于 article / showAll / 网址的。请改用:
path('<int:article_id>/', views.article, name='article')