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

Django新闻站点添加文章触发TypeError错误求助

问题排查与解决

先看你抛出的核心错误:

TypeError: sequence item 0: expected str instance, tuple found

这个错误直接指向了模板名称的类型问题——Django期望接收字符串格式的模板名,但你不小心把它变成了元组,导致解析失败。

看你的views.py里的NewsCreateView类:

class NewsCreateView(CreateView):
    model = News
    template_name = 'news_new.html',  # 这里的逗号是罪魁祸首!
    fields = ('title', 'body', 'author',)

末尾的逗号让template_name从单个字符串变成了包含单个元素的元组,而Django的模板加载器无法处理这种类型,所以抛出了500服务器错误。

修复方法

只需要把template_name那一行末尾的逗号删掉即可:

class NewsCreateView(CreateView):
    model = News
    template_name = 'news_new.html'  # 去掉多余的逗号
    fields = ('title', 'body', 'author',)

其他部分的代码看起来都没问题:

  • urls.py里的路由配置正确关联了NewsCreateView
  • news_new.html的模板继承和表单代码逻辑正常
  • 导航栏的{% url 'news_new' %}也正确指向了对应路由

修改完成后再点击“+ New”链接,应该就能正常加载新建文章的页面啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:55:01