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