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

Reply via email to