Do you see anything in your postgres logs? Sounds like some sort of caching
issue but I'm guessing.

-Chris

On Thu, Jun 10, 2010 at 12:29 PM, Stuart Laughlin <[email protected]>wrote:

> I fear I type too much. Let me try this a different way.
>
> I have a template tag (discount_price) that intermittently breaks --
> throws a ProgrammingError with "Error in formatting: couldn't adapt"
> message (debian stable, apache2, mod-wsgi, satchmo 0.9.1. stable). I
> don't know what causes it to happen. Restarting the server makes the
> problem go away. While the problem is happening, I can fire up the
> django shell and invoke the template tag with no problems. It seems it
> must have something to do with the apache process's connection to the
> postgresql database.
>
> Has anyone seen anything like this before?
>
>
> --Stuart
>
> On Wed, Jun 9, 2010 at 11:31 PM, Stuart Laughlin <[email protected]>
> wrote:
> > Hello Everyone --
> >
> > I have a recurring intermittent problem that I've been battling off
> > and on for the past few months. The error initially manifests itself
> > as a ProgrammingError in the product template on the bit that says "{{
> > product|discount_price:sale|currency }}". I've been dealing with it up
> > till now by commenting it out, avoiding using the discount_price
> > template tag, etc. Finally I resolved to get to the bottom of it and
> > added some logging to the get_product view. Well, the only effect that
> > had was to move the origin of the error from the template to my
> > logging statement in the view (but at least it seems like I get a
> > better stack trace when the error happens in the view!).
> >
> > At any rate, I'm looking at my stack trace, and I think I understand
> > what's happening. My logging statement in the get_product() view
> > throws an error when I invoke the discount_price template-tag method:
> >
> >   log.debug("product|discount_price:sale is %s" %
> > discount_price(product, best_discount))
> >
> > The error appears to actually occur in product/prices.py on line 14 here:
> >
> >   8.  qty_discounts = product.price_set.exclude(
> >   9. expires__isnull=False,
> >  10. expires__lt=datetime.date.today()).filter(quantity__lte=qty)
> >  11.
> >  12. adjustments = None
> >  13.
> >  14. if qty_discounts.count() > 0:
> >  15. # Get the price with the quantity closest to the one specified
> > without going over
> >  16. adjustments = qty_discounts.order_by('price','-quantity',
> > 'expires')[0].adjustments(product)
> >
> > Line 14 executes the query defined in lines 8-10, and qty_discounts
> > ends up being set to "Error in formatting: can't adapt".
> >
> > At the moment I'm getting this error every time I navigate to a
> > product (which obviously invokes my get_product view). I suspect that
> > when I restart apache, the error will go away.
> >
> > But here's the really odd thing: I can use "manage.py" to fire up the
> > shell and run the discount_price template tag with no problems, even
> > though I'm running it exactly like I am in the logging statement. So I
> > find this very puzzling. Has anyone seen anything like this? I'm
> > really hoping someone can point me in the right direction.
> >
> > Oh, and I'm on version 0.9.1 final.
> >
> > Full traceback follows my signature.
> >
> >
> > Thanks very much!
> >
> > --Stuart
> >
> > Environment:
> >
> > Request Method: GET
> > Request URL:
> http://10.10.20.20/vw/product/basic-black-center-console-304734/
> > Django Version: 1.1.1
> > Python Version: 2.5.2
> > Installed Applications:
> > ['django.contrib.sites',
> >  'satchmo_store.shop',
> >  'django.contrib.admin',
> >  'django.contrib.auth',
> >  'django.contrib.admindocs',
> >  'django.contrib.contenttypes',
> >  'django.contrib.comments',
> >  'django.contrib.sessions',
> >  'django.contrib.sitemaps',
> >  'registration',
> >  'keyedcache',
> >  'livesettings',
> >  'l10n',
> >  'sorl.thumbnail',
> >  'satchmo_store.contact',
> >  'tax',
> >  'tax.modules.no',
> >  'tax.modules.area',
> >  'tax.modules.percent',
> >  'shipping',
> >  'product',
> >  'product.modules.configurable',
> >  'payment',
> >  'payment.modules.dummy',
> >  'payment.modules.giftcertificate',
> >  'satchmo_utils',
> >  'app_plugins',
> >  'satchmo_ext.productratings',
> >  'satchmo_ext.recentlist',
> >  'satchmo_ext.upsell',
> >  'satchmo_ext.wishlist',
> >  'satchel',
> >  'south',
> >  'ecomm',
> >  'filer',
> >  'tinymce',
> >  'debug_toolbar']
> > Installed Middleware:
> > ('django.middleware.cache.UpdateCacheMiddleware',
> >  'django.middleware.common.CommonMiddleware',
> >  'django.contrib.sessions.middleware.SessionMiddleware',
> >  'django.middleware.locale.LocaleMiddleware',
> >  'django.contrib.auth.middleware.AuthenticationMiddleware',
> >  'django.middleware.doc.XViewMiddleware',
> >  'threaded_multihost.middleware.ThreadLocalMiddleware',
> >  'satchmo_store.shop.SSLMiddleware.SSLRedirect',
> >  'debug_toolbar.middleware.DebugToolbarMiddleware',
> >  'passion.middleware.FilterPersistMiddleware',
> >  'django.middleware.cache.FetchFromCacheMiddleware')
> >
> >
> > Traceback:
> > File
> "/usr/local/python-envs/satch/lib/python2.5/site-packages/django/core/handlers/base.py"
> > in get_response
> >  92.                 response = callback(request, *callback_args,
> > **callback_kwargs)
> > File
> "/usr/local/python-envs/satch/src/satchmo/satchmo/apps/product/views/__init__.py"
> > in get_product
> >  161.     log.debug("product|discount_price:sale is %s" %
> > discount_price(product, best_discount))
> > File
> "/usr/local/python-envs/satch/src/satchmo/satchmo/apps/product/templatetags/satchmo_discounts.py"
> > in discount_price
> >  107.         return untaxed_discount_price(product, discount)
> > File
> "/usr/local/python-envs/satch/src/satchmo/satchmo/apps/product/templatetags/satchmo_discounts.py"
> > in untaxed_discount_price
> >  117.     up = product.unit_price
> > File
> "/usr/local/python-envs/satch/src/satchmo/satchmo/apps/product/models.py"
> > in _get_fullPrice
> >  925.             price = get_product_quantity_price(self, Decimal('1'))
> > File
> "/usr/local/python-envs/satch/src/satchmo/satchmo/apps/product/prices.py"
> > in get_product_quantity_price
> >  32.     adjustments = get_product_quantity_adjustments(product,
> > qty=qty, parent=parent)
> > File
> "/usr/local/python-envs/satch/src/satchmo/satchmo/apps/product/prices.py"
> > in get_product_quantity_adjustments
> >  14.     if qty_discounts.count() > 0:
> > File
> "/usr/local/python-envs/satch/lib/python2.5/site-packages/django/db/models/query.py"
> > in count
> >  292.         return self.query.get_count()
> > File
> "/usr/local/python-envs/satch/lib/python2.5/site-packages/django/db/models/sql/query.py"
> > in get_count
> >  376.         number = obj.get_aggregation()[None]
> > File
> "/usr/local/python-envs/satch/lib/python2.5/site-packages/django/db/models/sql/query.py"
> > in get_aggregation
> >  348.         result = query.execute_sql(SINGLE)
> > File
> "/usr/local/python-envs/satch/lib/python2.5/site-packages/django/db/models/sql/query.py"
> > in execute_sql
> >  2369.         cursor.execute(sql, params)
> > File
> "/usr/local/python-envs/satch/lib/python2.5/site-packages/django/db/backends/util.py"
> > in execute
> >  19.             return self.cursor.execute(sql, params)
> >
> > Exception Type: ProgrammingError at
> /product/basic-black-center-console-304734/
> > Exception Value: can't adapt
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Satchmo users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<satchmo-users%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/satchmo-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Satchmo 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/satchmo-users?hl=en.

Reply via email to