KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Hey, I am following this tutorial to learn to make a wiki page with Django. However, it is made in django 0.96 and I use Django 1.3 so there are some things that are different. Some I already fixed myself, however this one I can't seem to make it work. I made a form that submits data to a view. This is the form: <form method="post" action"/wikicamp/{{page_name}}/save/">{% csrf_token %} <textarea name="content" rows="20" cols="60">{{content}}</textarea><br> <input type="submit" value="Save Page"/> </form> and the /wikicamp/{{page_name}}/save/ url redirects to the save_page view: from django.http import HttpResponseRedirect from django.core.context_processors import csrf def save_page(request, page_name): c = {} c.update(csrf(request)) content = c.POST["content"] 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 + "/") However the problem is that I get this error: Help Reason given for failure: CSRF token missing or incorrect. In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure: The view function uses RequestContext for the template, instead of Context. In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data. You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will
Tags (comma-separated)
Save Edits
Cancel