У меня есть эта ошибка из задачи курса веб-программирования:
Цель функции - написать или обновить текст, который поставляется со страницей в текстовой области, сохранить в том же открытом файле и перенаправить на другая страница.
Django Ошибка:
MultiValueDictKeyError в / EditPage 'NewContent'
Request Method:POST
-Request URL:http://127.0.0.1:8000/EditPage
-Django Version:3.0.8v
-Exception Type:MultiValueDictKeyError
-Exception Value:'NewContent'
-Exception Location:C:\Python38\lib\site-packages\django\utils\datastructures.py
in __getitem__, line 78
-Python Executable: C:\Python38\python.exe
-Python Version: 3.8.3
*Exception Type: MultiValueDictKeyError at /EditPage
Exception Value: 'NewContent'*
My HTML:
<h2>{{title}}</h2>
<br>
<form action="{% url 'encyclopedia:EditPage' %}" method="post" width=90% >
{% csrf_token %}
<label for="NewContent"><h4>Change Encyclopedia Item :</h4></label>
<textarea type="text" wrap="hard" onclick="showNewcontent()" name="NewContent" id="NewContent">
{{content}}
</textarea>
<br>
<form class="form-inline" style="position:relative ; top:15px" >
<p><button type="submit" class="btn btn-success">Save New Content</button>
<button type="button" class="btn btn-danger">
<a href="{% url 'encyclopedia:index' %}">Cancel</button>
</p>
</form>
</form>
Мой JS
<script>
function showNewcontent() {
var x = ""; var depois = "";
var x = document.getElementById("content").value;
document.getElementById("NewContent").innerHTML = x;
var depois = document.getElementById("NewContent").value;
alert(x);
}
</script>
Мой Python:
def EditPage(request):
if request.method == "POST":
entry = str(request.POST["entry"])
title = str( request.POST["title"])
print("Reading:" , "Título:",title, "Entry:", entry)
content =util.get_entry(title)
print(content)
NewContent= request.POST["NewContent"]
print("Will Save:", NewContent)
if len( NewContent) >0:
pagename = "Wiki/"+title.capitalize()
filename = f"entries/{title}.md"
print(pagename, filename)
with open (filename, "w") as myfile:
myfile.seek(0,0)
myfile.write(NewContent)
myfile.save()
context={
"page": "EntryPage",
"pagename":pagename,
"entry":entry,
"title":title,
"content":NewContent,
"encyclopedia": request.session["Pwiki"]
}
return render(request, "encyclopedia/EntryPage.html", context)
else:
return render(request, "encyclopedia/EditPage.html",
{"message":" The content is empty, please try again"})
else:
context = {
"message":"Empty Form didn´t get into POST",
}
return render(request, "encyclopedia/EditPage.html" ,context)