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

Django报错:HttpRequest.__init__仅接受1个参数却传2个,需实现点击文章输出slug

问题解决:输出文章Slug并修复HttpRequest初始化错误

错误原因

你在article_detail视图中错误地尝试返回HttpRequest(slug)——HttpRequest是Django用来封装请求的类,不是用来生成响应的,而且它的构造函数不需要额外传入slug参数,这直接导致了HttpRequest.__init__() takes 1 positional argument but 2 were given的报错。

修复方案

要输出文章的slug,你需要使用HttpResponse(Django用来返回响应的类),而非HttpRequest。修改视图代码如下:

修改后的视图代码

from datetime import date
from django.shortcuts import render
from .models import Article
from django.http import HttpResponse  # 替换HttpRequest为HttpResponse

# Create your views here.
def article_list(request):
    articles = Article.objects.all().order_by('date')
    return render(request,'articles/article_list.html', {'articles': articles} )

def article_detail(request, slug):
    return HttpResponse(slug)  # 返回HttpResponse输出slug

验证逻辑

当前的路由配置已经正确:path('<slug:slug>/', views.article_detail, name = 'detail')会把URL中的slug值传递给视图的slug参数,修改后的视图会直接将这个slug作为响应内容返回,满足你点击文章后输出对应slug的需求。

内容的提问来源于stack exchange,提问作者Aleksandra Milicevic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:00:52