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里的路由配置正确关联了NewsCreateViewnews_new.html的模板继承和表单代码逻辑正常- 导航栏的
{% url 'news_new' %}也正确指向了对应路由
修改完成后再点击“+ New”链接,应该就能正常加载新建文章的页面啦!
内容的提问来源于stack exchange,提问作者runnerpaul
相关产品推荐
相关产品推荐

