Я использовал эту доску, чтобы найти много ответов на свои проблемы, но для этой я не могу найти пост.Я уверен, что у меня просто должен быть какой-то плохой код.Я новичок в веб-разработке, поэтому я изучаю все это (HTTP, HTML, Python и Django одновременно, у меня более 20 лет опыта программирования, поэтому я его получаю).Я в какой-то момент в обучающем видео, многие из вас знают о том, где я размещаю новый контент без ошибок из html-кода редактирования, но может показаться, что строковые данные «контент» не передаются на следующий этап, на котором они будут полученысохраняется в базе данных.Пока что все ошибки, которые у меня были, связаны с тем, что тренинг был написан в очень старой версии, и я использую более новую версию.Однако я считаю, что это моя вина, поэтому мне нужна помощь.Я думаю, что в моем views.py я не передаю строку «content» правильно, или я не передаю ключ к записи базы данных, потому что ошибка, по-видимому, заключается в том, что в следующем разделе в представлении «save» первая строка выдает этоошибка, указывающая, что не удается найти строку данных, которую я пытался передать из последнего представления.ошибка ...
Request Method: POST
Request URL: http://127.0.0.1:7000/wikicamp/tony/save/
Django Version: 1.3.1
Exception Type: MultiValueDictKeyError
Exception Value:
"Key 'content' not found in <QueryDict: {u'csrfmiddlewaretoken': [u'a9be0ebf915fc40b13b016e791a153be']}>"
Трассировка назад
Environment:
Request Method: POST
Request URL: http://127.0.0.1:7000/wikicamp/tony/save/
Django Version: 1.3.1
Python Version: 2.7.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'wikicamp.wiki',
'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Trace back:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "D:\web dev\training\Django\secondproj\wikicamp\..\wikicamp\wiki\views.py" in save_page
30. content = request.POST["content"] # error thrown for this line of code
File "C:\Python27\lib\site-packages\django\utils\datastructures.py" in __getitem__
256. raise MultiValueDictKeyError("Key %r not found in %r" % (key, self))
Exception Type: MultiValueDictKeyError at /wikicamp/tony/save/
Exception Value: "Key 'content' not found in <QueryDict: {u'csrfmiddlewaretoken': [u'a9be0ebf915fc40b13b016e791a153be']}>"
просмотр кода
def view_page(request, page_name):
try:
page=Page.objects.get(pk=page_name)
except Page.DoesNotExist:
return render_to_response("create.html", {"page_name":page_name})
content = page.content
return render_to_response("view.html", {"page_name":page_name, "content":content})
def edit_page(request, page_name):
try:
page = Page.objects.get(pk=page_name)
content = page.content
except Page.DoesNotExist:
content = ""
return render_to_response("edit.html",{"page_name":page_name, "content":content},context_instance=RequestContext(request))
def save_page(request, page_name):
content = request.POST["content"] # error thrown for this line of code
try:
page = Page.objects.get(pk=page_name)
page.content = content
except Page.DoesNotExist:
page = Page(name=page_name, content = content, date = date)
page = Page(name=page_name, content = content)
page.save()
return HttpResponseRedirect("/wikicamp/" + page_name +"/")