You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django视图遇意外关键字参数:访问/article/1/路径触发TypeError

解决Django中/article/1/路径访问的TypeError问题

我帮你排查出几个关键错误,直接对应你遇到的问题:

错误1:视图函数与URL配置不匹配

你的URL配置里把<int:article_id>/路径指向了views.articles,但实际定义的视图函数是article(少了末尾的s)!这会导致Django调用错误的视图函数,如果articles函数没有接收article_id参数,自然会抛出TypeError。

错误2:render_to_response的字典语法错误

你在传递上下文时用了双大括号{{...}},这是模板里的语法,Python代码里应该用单大括号{...}来定义字典。

错误3:URL路径缺少article/前缀

你想要的是/article/1/这样的访问路径,但当前的URL规则是<int:article_id>/,这只会匹配/1/,不会带上article前缀。

额外优化:使用更现代的render函数

render_to_response在Django 3.0+已被标记为过时,推荐用render函数,它会自动处理request上下文,避免潜在的上下文缺失问题。


修正后的views.py:

from django.shortcuts import render
from .models import Articles  # 确保导入了你的文章模型

def article(request, article_id):
    # 可选:用get_object_or_404替代get,避免文章不存在时抛出服务器错误
    # from django.shortcuts import get_object_or_404
    # article = get_object_or_404(Articles, id=article_id)
    article = Articles.objects.get(id=article_id)
    return render(request, 'article.html', {'article': article})

修正后的urls.py:

from django.urls import path
from . import views

urlpatterns = [
    path('showall/', views.articles, name='articles'),
    # 修正了视图函数指向,同时添加article前缀
    path('article/<int:article_id>/', views.article, name='article'),
]

内容的提问来源于stack exchange,提问作者M.B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:09:27