I've been digging some more, and am still just as stuck...
I did find this in satchmo.log:
satchmo_utils: ERROR Could not find any url for satchmo_checkout-step2
I puttered around in payment/urls.py and payment/modules/paypal/urls.py
It seems like the satchmo_checkout-step2 urlpatterns are generated
from payment/modules/{modulename}/urls.py. Perhaps something in my
configuration is causing this generation to occur out of order?
I tried changing where the satchmo urlpatterns are imported
mysite/urls.py, which didn't help. I also started fiddling with a new
Satchmo store from scratch, which had this same problem for a while,
then it fixed itself inexplicably... so now I'm trying to figure out
what the heck I did right!
Thanks,
Sam
The following script tests to see if Satchmo is even able to do all
that urlpattern creation mumbo-jumbo on a particular install. I'm
running it from a ./manage.py shell, and I execute it by typing:
>>> from test_paymentmodules_urls import *
========
## test_paymentmodules_urls.py
from livesettings import config_get, config_get_group, config_value
from satchmo_utils.dynamic import lookup_url, lookup_template
from django.core import urlresolvers
payment_modules = config_get('PAYMENT', 'MODULES')
for paymentmethod in payment_modules:
payment_module = config_get_group(paymentmethod)
for s in ['step1', 'step2', 'step3', 'success', 'ipn']:
named_url = 'satchmo_checkout-%s' % s
try:
print lookup_url(payment_module, named_url)
except:
print "***FAIL: lookup_url(%s, %s)" % (payment_module.key,
named_url)
try:
urlresolvers.resolve(named_url, None, {'paymentmethod':
paymentmethod})
except:
print "***FAIL: urlresolvers.resolve(%s, None,
{'paymentmethod': %s})" % (named_url, paymentmethod)
========
The output from my barebones install with a working /shop/checkout/:
========
/shop/checkout/
***FAIL: urlresolvers.resolve(PAYMENT_PAYPAL, satchmo_checkout-step1)
/shop/checkout/paypal/
***FAIL: urlresolvers.resolve(PAYMENT_PAYPAL, satchmo_checkout-step2)
/shop/checkout/paypal/confirm/
***FAIL: urlresolvers.resolve(PAYMENT_PAYPAL, satchmo_checkout-step3)
/shop/checkout/paypal/success/
***FAIL: urlresolvers.resolve(PAYMENT_PAYPAL, satchmo_checkout-success)
/shop/checkout/paypal/ipn/
***FAIL: urlresolvers.resolve(PAYMENT_PAYPAL, satchmo_checkout-ipn)
========
The output from the broken install:
========
/shop/checkout/
***FAIL: urlresolvers.resolve(satchmo_checkout-step1, None,
{'paymentmethod': PAYMENT_PAYPAL})
***FAIL: lookup_url(PAYMENT_PAYPAL, satchmo_checkout-step2)
***FAIL: urlresolvers.resolve(satchmo_checkout-step2, None,
{'paymentmethod': PAYMENT_PAYPAL})
***FAIL: lookup_url(PAYMENT_PAYPAL, satchmo_checkout-step3)
***FAIL: urlresolvers.resolve(satchmo_checkout-step3, None,
{'paymentmethod': PAYMENT_PAYPAL})
***FAIL: lookup_url(PAYMENT_PAYPAL, satchmo_checkout-success)
***FAIL: urlresolvers.resolve(satchmo_checkout-success, None,
{'paymentmethod': PAYMENT_PAYPAL})
***FAIL: lookup_url(PAYMENT_PAYPAL, satchmo_checkout-ipn)
***FAIL: urlresolvers.resolve(satchmo_checkout-ipn, None,
{'paymentmethod': PAYMENT_PAYPAL})
========
I'm not really sure what to make of this, and just running a
lookup_url or urlresolvers.resolve either works or gives me a
uselessly ambiguous traceback.
Thanks,
Sam
I turned off memcache, and everything seems fine now, for some strange
reason. I'll explore this, and let you all know where the trail leads.
Sam
M'k... switched from cmemcache to python-memcached, and everything is a-okay.
Sam