Django文件上传代码中HTML模板调用逻辑及重命名报错问题
Django模板命名问题原因及解决办法
- 报错原因:你用的Django视图(大概率是FormView这类类视图)有默认模板查找规则——它会自动寻找「小写视图类名+_form.html」的模板文件。比如你的视图类如果叫UploadView,默认就找upload_form.html,所以原来的文件名刚好符合这个规则,不用手动指定也能被找到。改成upload.html后,视图找不到匹配的模板文件,自然就报错了。
- 自定义模板名的解决方法:
- 类视图方案:在你的视图类里直接添加
template_name属性,指定自定义模板名。示例代码:class UploadView(FormView): template_name = 'upload.html' # 这里改成你的自定义模板名 form_class = UploadForm success_url = '/success/' - 函数视图方案:如果用的是函数视图,在调用
render方法时明确指定模板名参数。示例代码:def upload_view(request): if request.method == 'POST': form = UploadForm(request.POST, request.FILES) if form.is_valid(): # 处理上传逻辑 return redirect('success') else: form = UploadForm() return render(request, 'upload.html', {'form': form}) # 这里指定自定义模板名
- 类视图方案:在你的视图类里直接添加
内容的提问来源于stack exchange,提问作者Viencent
相关产品推荐
相关产品推荐

