showmedo のチュートリアル「20分でウィキを作成する」を使用して、ウィキペディアと同様に機能するシンプルなアプリに取り組んでいます。
このアプリは、たとえば犬が存在しない場合は犬のページを作成し、犬に関するすべての情報を追加すると、犬と犬の詳細が表示されます。
同じページを編集しようとすると。ページはメイン ページで更新されず、管理ページでも更新されます。
問題は 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>