you could use modelforms, see
http://www.djangoproject.com/documentation/modelforms/
or without modelforms:
class MyForm(forms.Form):
def __init__(self, user, *args, **kwargs):
self.user = user
super(MyForm, self).__init__(*args, **kwargs)
...
define your fields here
...
def save(self):
new_object = Booking(user=self.user, ...)
new_object.save()
return new_object
and in your view:
form = MyForm(request.user, request.POST)
On Aug 21, 12:44 pm, "Genis Pujol Hamelink" <[EMAIL PROTECTED]>
wrote:
> Thanks for your reply,
>
> save() got an unexpected keyword argument 'commit' as I didn't define
> commit in my save function... where did u get this commit=False from?
>
> Grtz,
>
> G.
>
>
>
> On Thu, Aug 21, 2008 at 12:41 PM, patrickk <[EMAIL PROTECTED]> wrote:
>
> > try this:
> > form.save(commit=False)
> > form.autor = request.user
> > form.save()
>
> > On Aug 21, 12:24 pm, "Genis Pujol Hamelink" <[EMAIL PROTECTED]>
> > wrote:
> > > Hello,
>
> > > I'm trying to pass a the id of the user logged in to a form field, but it
> > > doesn't seem to work... any ideas / suggestions?
>
> > > Thanks in advance :)
>
> > > Here are the view, model and form objects:
>
> > > View:
>
> > > def punts_form3(request):
>
> > > if request.method == 'POST':
> > > form = form_puntsn3(request.POST, request.FILES)
> > > form.autor_id = request.session['_auth_user_id'] --> I get
> > an
> > > error message ""Column 'autor_id' cannot be null")"
> > > if form.is_valid():
> > > form.save()
> > > return HttpResponseRedirect(".")
>
> > > else:
>
> > > form = form_puntsn3()
>
> > > t = loader.get_template('htmls/punts_form3.html')
>
> > > c = Context({
> > > 'form': form,
> > > })
> > > return HttpResponse(t.render(c))
>
> > > Model:
>
> > > class puntmanager(models.Manager):
> > > def
> > create_punt(self,lat,lng,descr,erico,precisio,autor,quan,esvalid):
> > > punt_nou =
> > > self.model(None,lat,lng,descr,erico,precisio,autor,quan,esvalid)
> > > punt_nou.save()
> > > return punt_nou
>
> > > class puntsn3(models.Model):
> > > lat = models.FloatField(max_digits=16, decimal_places=14)
> > > lng = models.FloatField(max_digits=16, decimal_places=14)
> > > #imatge = models.ImageField(upload_to='img', blank=True, null=True)
> > > descr = models.TextField('Desc', maxlength=500,blank=True, null=True)
> > > erico = models.CharField(maxlength=1, choices=TIPUS_ERICONS)
> > > precisio = models.CharField(maxlength=1, choices=NIV_PREC)
> > > autor = models.ForeignKey(User)
> > > quan = models.DateField()
> > > esvalid = models.BooleanField(default='0',editable=False)
> > > objects = puntmanager()
>
> > > class form_puntsn3(newforms.Form):
> > > lat = newforms.IntegerField()#max_digits=16, decimal_places=14)
> > > lng = newforms.IntegerField()#max_digits=16, decimal_places=14)
> > > #imatge = newforms.Field(widget=newforms.FileInput())
> > > descr = newforms.CharField()
> > > erico = newforms.ChoiceField(choices=TIPUS_ERICONS)
> > > precisio = newforms.ChoiceField(choices=NIV_PREC)
> > > autor = newforms.IntegerField(required=False)
> > > quan = newforms.DateField(initial='2008-01-01',
> > > widget=SelectDateWidget(years=range(2010, 2005, -1)))
> > > esvalid = newforms.IntegerField(required=False)
> > > def save(self):
> > > nou_obj = puntsn3.objects.create_punt(lat=self.clean_data['lat'],
> > > lng=self.clean_data['lng'],
> > > descr=self.clean_data['descr'],
> > > erico=self.clean_data['erico'],
>
> > > precisio=self.clean_data['precisio'],
> > > autor=self.clean_data['autor'],
> > > quan=self.clean_data['quan'],
>
> > esvalid=self.clean_data['esvalid']
> > > )
> > > return nou_obj
>
> > > --
> > > Genis
>
> --
> Genis
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---