Я работаю над простым приложением, которое действует подобно википедии, используя учебник «Создайте вики через 20 минут» из showmedo.Страница Django не сохраняет
Приложение работает, создавая страницу, например, собаку, если она не существует, то вы добавляете всю информацию о собаках, и она отображает собаку и детали собаки.
Когда я пытаюсь отредактировать одну и ту же страницу. страница не обновляется на главной странице, либо она обновляется на моей странице администратора.
Я думаю, что проблема связана с моей функцией save_page и edit_page. Итак, когда я создаю страницу, она работает , но когда я пытаюсь восстановить страницу и сохранить ее. Это не спасает.
Единственный метод, который работает, это редактирование страницы администратором.
Я думаю, что проблема здесь
def save_page(request, page_name):
content = request.POST.get('content', 'this is the default')
try:
page = Page.objects.get(pk=page_name)
page.content = content
Это сайт http://tafe.pythonanywhere.com/wikicamp/Dogs/
Мой views.py
from wiki.models import Page
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.template import RequestContext
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}, context_instance=RequestContext(request))
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.get('content', 'this is the default')
try:
page = Page.objects.get(pk=page_name)
page.content = content
except Page.DoesNotExist:
page = Page(name=page_name, content=content)
page.save()
return HttpResponseRedirect("/wikicamp/" + page_name + "/")
Мой create.html
<html>
<head>
<title>{{page.name}} - Create </title>
</head>
<body>
<h1>{{page_name}} </h1>
This page does not exist. <a href="{% url wiki:edit page_name %}">Create? </a>
</body>
</html>
Мой edit.html
<html>
<head>
<title>{{page_name - Editing</title>
</head>
<body>
<h1>Editing {{page_name}} </h1>
<form method = "post" action="{% url wiki:save page_name %}"> {% csrf_token %}
<textarea name="content" rows="20" cols="60"> {{content}}
</textarea><br/>
<input type="submit" value="Save Page"/>
</form>
</body>
</html>
Мой view.html
<html>
<head>
<title>{{page_name}}</title>
</head>
<body>
<h1>{{page_name}} </h1>
{{content}}
<hr/>
<a href="{% url wiki:edit page_name %}">Edit this page ?</a>
</body>
</html>
Internet Explorer? –
http://tafe.pythonanywhere.com/wikicamp/Dogs/ Попробуйте. :] – donkeyboy72
Я немного запутался в ваших кодах. В вашем файле edit.html сохраните его, чтобы сохранить url вместо этого в URL-адресе редактирования. – catherine