【发布时间】:2020-12-10 08:14:12
【问题描述】:
我正在制作一个 Django 应用程序。这是一个维基百科页面,如果您单击 ,将允许您创建一个新页面。
urlpatterns 中的路径是:
path("create", views.create, name="create")
views.py中的函数是:
def create(request):
if request.method == 'POST':
form = Post(request.POST)
if form.is_valid():
title = form.cleaned_data["title"]
textarea = form.cleaned_data["textarea"]
entries = util.list_entries()
if title in entries:
return render(request, "encyclopedia/error.html", {"form": Search(), "message": "Page already exist"})
else:
util.save_entry(title,textarea)
page = util.get_entry(title)
page_converted = markdowner.convert(page)
context = {
'form': Search(),
'page': page_converted,
'title': title
}
return render(request, "encyclopedia/entry.html", context)
else:
return render(request, "encyclopedia/create.html", {"form": Search(), "post": Post()})
我得到的错误信息是:
TypeError: 解码为 str: 需要一个类似字节的对象,发现 NoneType
完整追溯:
Traceback(最近一次调用最后一次): 文件“/Users/franciscogutierrez/Desktop/Software1/CS50W/project1/wiki/env/lib/python3.8/site-packages/django/core/handlers/exception.py”,第 47 行,在内部 响应 = get_response(请求) 文件“/Users/franciscogutierrez/Desktop/Software1/CS50W/project1/wiki/env/lib/python3.8/site-packages/django/core/handlers/base.py”,第 179 行,在 _get_response 响应 = Wrapped_callback(request, *callback_args, **callback_kwargs) 网页中的文件“/Users/franciscogutierrez/Desktop/Software1/CS50W/project1/wiki/encyclopedia/views.py”,第 60 行 “标题”:markdowner.convert(页面) 文件“/Users/franciscogutierrez/Desktop/Software1/CS50W/project1/wiki/env/lib/python3.8/site-packages/markdown2.py”,第 316 行,转换 文本 = unicode(文本,'utf-8') TypeError: 解码为 str: 需要一个类似字节的对象,找到了 NoneType
【问题讨论】:
-
当请求方法为 POST 且表单无效时,您不会返回响应。视图不应返回 None
-
我似乎无法将其转到 create.html。每次单击“创建新页面”链接时,都会收到类型错误消息。在 create.html 我有一个表单,然后它允许用户发布。
-
将完整的追溯添加到您的问题中,它将缩小实际问题的范围
-
我已经更新了问题,谢谢
标签: python html django typeerror