problem in view also :

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()
 this one should be converted to :

def about(request):
   if request.method == 'POST':
        return HttpResponseRedirect('/about/')
    elif request.method == 'GET':
        protectedbycsrf= {}
        protectedbycsrf.update(csrf(request))
        return render_to_response('about.html',
context_instance=RequestContext(protectedbycsrf))
    else:
        raise Http404()



2012/7/11 Сергей Фурсов <geyse...@gmail.com>:
> oops)
>
>
> 2012/7/11 Сергей Фурсов <geyse...@gmail.com>
>>
>> Some notes about your models:
>> 1. why do you create id field manually? Django will do it for you ;)
>> 2. why do you explicitly set db_table and db_column? Do you have some
>> legacy database? If not, django will do it for you ;)
>> 3. move your vision from tables to objects
>> 4. call your models in CamelCase notation and in singular form
>> 5. try to understand related_name parameter
>> https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.related_name
>>
>> in my opinion your models should looks like:
>> from django.db import models
>>
>> class Owner(models.Model):
>>     num = models.IntegerField()
>>
>>     def __unicode__(self):
>>         return unicode(self.num)
>>
>>
>> class Vehicle(models.Model):
>>     plate = models.CharField(max_length=80, unique=True)
>>     owner1 = models.ForeignKey('Owner', null=True,
>> related_name='vehicles1', blank=True)
>>     owner2 = models.ForeignKey('Owner', null=True,
>> related_name='vehicles2', blank=True)
>>
>>     def __unicode__(self):
>>         return self.plate
>>
>>
>> class WebRequest(models.Model):
>>     owner = models.ForeignKey('Owner')
>>     vehicle1 = models.ForeignKey(Vehicle, related_name='web_requests1')
>>     vehicle2 = models.ForeignKey(Vehicle, null=True,
>> related_name='web_requests2', blank=True)
>>
>>
>>
>> 2012/7/11 Сергей Фурсов <geyse...@gmail.com>
>>>
>>> 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 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 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 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.

-- 
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.

Reply via email to