Dear all,

I have a very simple 3 page ordering process for a small online shop.

I would like to pass data from the pages via sessions.

But I run into trouble when saving in sessions via clean_data and then
trying to initiate a newform with the saved clean_data. This occurs
only when ForeignKeys are in the Game.

This is probably due to the nature foreignkeys are stored as an object
in clean_data (see below).

Is there a way around this? (eg Store id as an integer only)

Thanks for any help in advance!
  >>Michael

Session:
>>> from shop.models import OrderForm
>>> import datetime
>>> d = {'date':datetime.datetime(2007,8,2,19,30,47), 'customer': 1,'coffee':1}
>>> b = OrderForm(d)
>>> b.is_valid()
True
>>> b.clean_data
{'date': datetime.datetime(2007, 8, 2, 19, 30, 47), 'customer':
<Customer: Annon
>, 'coffee': <Price: Espresso 12k>}
>>> o = b.save()
>>> o
<Order: 2007-08-02 19:30:47>
>>> o.id
4
>>> sessionvariable = b.clean_data
>>> c = OrderForm(sessionvariable)
>>> c
<django.newforms.models.OrderForm object at 0x01501EB0>
>>> c.save()
Traceback (most recent call last):
  File "<console>", line 1, in ?
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\newforms\models.py", line 21, in model_save
    if self.errors:
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\newforms\forms.py", line 90, in _errors
    self.full_clean()
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\newforms\forms.py", line 177, in full_clean
    value = field.clean(value)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\newforms\models.py", line 162, in clean
    value = self.queryset.model._default_manager.get(pk=value)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\manager.py", line 73, in get
    return self.get_query_set().get(*args, **kwargs)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\query.py", line 250, in get
    obj_list = list(clone)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\query.py", line 108, in __iter__
    return iter(self._get_data())
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\query.py", line 470, in _get_data
    self._result_cache = list(self.iterator())
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\query.py", line 183, in iterator
    cursor.execute("SELECT " + (self._distinct and "DISTINCT " or "")
+ ",".join
(select) + sql, params)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\backends\util.py", line 12, in execute
    return self.cursor.execute(sql, params)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\backends\sqlite3\base.py", line 93, in execute
    return Database.Cursor.execute(self, query, params)
InterfaceError: Error binding parameter 0 - probably unsupported type.
>>> c
<django.newforms.models.OrderForm object at 0x01501EB0>
>>> c.is_valid()
Traceback (most recent call last):
  File "<console>", line 1, in ?
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\newforms\forms.py", line 99, in is_valid
    return self.is_bound and not bool(self.errors)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\newforms\forms.py", line 90, in _errors
    self.full_clean()
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\newforms\forms.py", line 177, in full_clean
    value = field.clean(value)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\newforms\models.py", line 162, in clean
    value = self.queryset.model._default_manager.get(pk=value)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\manager.py", line 73, in get
    return self.get_query_set().get(*args, **kwargs)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\query.py", line 250, in get
    obj_list = list(clone)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\query.py", line 108, in __iter__
    return iter(self._get_data())
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\query.py", line 470, in _get_data
    self._result_cache = list(self.iterator())
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\models\query.py", line 183, in iterator
    cursor.execute("SELECT " + (self._distinct and "DISTINCT " or "")
+ ",".join
(select) + sql, params)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\backends\util.py", line 12, in execute
    return self.cursor.execute(sql, params)
  File "C:\Dokumente und Einstellungen\de1763\Program Files
\Python24\Lib\site-pa
ckages\django\db\backends\sqlite3\base.py", line 93, in execute
    return Database.Cursor.execute(self, query, params)
InterfaceError: Error binding parameter 0 - probably unsupported type.


--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to