as described in error message your view function have to use RequestContext<http://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext> for the template, instead of Context. your view should looks like
def about(request): if request.method == 'POST': return HttpResponseRedirect('/about/') elif request.method == 'GET': return render_to_response('about.html', context_instance=RequestContext(request)) else: raise Http404() note that you redirect (HttpResponseRedirect) to url, but render (render_to_response) template with context also I changed action for form in tempalte to /about/ to handle POST and GET requests in same view hope this helps 2012/7/10 JJ Zolper <codinga...@gmail.com> > Here is the error I received with debug set to true for Django: > > Forbidden (403) > > CSRF verification failed. Request aborted. > 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<http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ref-contrib-csrf> > has > not been used correctly. For POST forms, you need to ensure: > > - The view function uses > RequestContext<http://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-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 be displayed. > > You can customize this page using the CSRF_FAILURE_VIEW setting. > > > I'm wondering if this is caused because I don't have a redirect page for > my 'POST' HTML submit. > > Now my code... > > URLCONF: > > from django.conf.urls.defaults import patterns, include, url > > from MadTrak.manageabout.views import about, about_form > > > # Uncomment the next two lines to enable the admin: > > from django.contrib import admin > > admin.autodiscover() > > > urlpatterns = patterns('', > > > (r'^about_form/', about_form), > > (r'^about/', about), > > > # Examples: > > # url(r'^$', 'MadTrak.views.home', name='home'), > > # url(r'^MadTrak/', include('MadTrak.foo.urls')), > > > ## url(r'^$', 'MadTrak.views.home', name='home'), with a view named home > > ## url(r'^listen/', 'MadTrak.views.home', name='home'), with a view named > home > > ## url(r'^home/', 'MadTrak.views.home', name='home'), with a view named > home > > > # Uncomment the admin/doc line below to enable admin documentation: > > # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), > > > # Uncomment the next line to enable the admin: > > url(r'^admin/', include(admin.site.urls)), > > ) > > > views.py in my manageabout app: > > from django.http import HttpResponseRedirect > > from django.shortcuts import render_to_response > > from MadTrak.manageabout.models import AboutMadtrak > > > def about_form(request): > > return render_to_response('about_form.html') > > > def about(request): > > if request.method == 'POST': > > # do_something_for_post() > > return HttpResponseRedirect('about.html') > > elif request.method == 'GET': > > return render_to_response('/') > > else: > > raise Http404() > > > model where i tried to set up my database to recieve the information > posted: > > from django.db import models > > > class AboutMadtrak(models.Model): > > name = models.CharField(max_length=30) > > title = models.CharField(max_length=60) > > bio = models.CharField(max_length=200) > > website = models.URLField() > > > def __unicode__(self): > > return self.nam > > > my template for the about form submission: > > > <html> > > <title>About-Form</title> > > <head> > > > </head> > > <body> > > > MadTrak About Page, Yo! > > > <p></p> > > > <form action="/about_form/" method="post"> > > {% csrf_token %} > > <p>Name: <input type="text" name="name" value=""></p> > > <p>Title: <input type="text" name="title" value=""></p> > > <p>Bio: <textarea name="bio" rows="10" cols="50"></textarea></p> > > <p>Website: <input type="text" name="website" value=""></p> > > <input type="submit" value="Submit"> > > </form> > > > </body> > > </html> > > > > In conclusion I am fairly new to even 'POST' and 'GET' operations so I > apologize haha. Anyways, I see the CSRF error and I was confused because i > recall that having to do with security? An open operation from submission > to a redirect page? I'm not sure. > > All I wanted to accomplish was to be able to post the data in that > template and see the result in my in my MadTrak database. That's it. Just > see the data as an item in my database. Any help is welcomed as I try to > iron this out! > > Cheers to all the Django developers out there! > > JJ Zolper > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/django-users/-/DChOPlS2aAsJ. > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.