Yep it's a problem with my views.py and my template or html page. My html page needed the csrf token tag: {% csrf_token %}
and my view needed: return render_to_response('about.html', context_instance=RequestContext(request)) so thanks for the help!!! On Wednesday, July 11, 2012 7:58:54 AM UTC-4, Sergey Fursov wrote: > > Ok, I tried your code, just added in models.py fake owners model to > correct foreign key > > class Owners(models.Model): > num = models.IntegerField() > > def __unicode__(self): > return unicode(self.num) > > and create views.py with three lines of code: > > def page(request): > form = WebrequestsForm(own_id=1) > return render_to_response('page.html', {'form': form}) > > and it works! > May be problem in your views.py? > > > 2012/7/10 Сергей Фурсов <geyse...@gmail.com> > >> 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 view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/sZTF6tKbg3UJ. 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.