Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 9th, 2012  |  syntax: None  |  size: 3.28 KB  |  hits: 16  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. View function not getting called in Django
  2. from django.shortcuts import render_to_response
  3. from django.template import RequestContext
  4. from django.core import urlresolvers
  5. from django.http import HttpResponseRedirect
  6.  
  7. from ecomstore.checkout.forms import CheckoutForm
  8. from ecomstore.checkout.models import Order, OrderItem
  9. from ecomstore.checkout import checkout
  10. from ecomstore.cart import cart
  11. from django.core.context_processors import csrf
  12.  
  13. # Create your views here.
  14. def show_checkout(request, template_name='checkout/checkout.html'):
  15.     c = {}
  16.     c.update(csrf(request))
  17.     if cart.is_empty(request):
  18.         cart_url = urlresolvers.reverse('show_cart')
  19.         return HttpResponseRedirect(cart_url)
  20.     if request.method == 'POST':
  21.         postdata = request.POST.copy()
  22.         form = CheckoutForm(postdata)
  23.         if form.is_valid():
  24.             response = checkout.process(request)
  25.             order_number = response.get('order_number',0)
  26.             print 'this is the order number: ' + str(order_number)
  27.             error_message = response.get('message','')
  28.             if order_number:
  29.                 request.session['order_number'] = order_number
  30. #                receipt_url = urlresolvers.reverse('checkout_receipt')
  31.                 print request.session['order_number']
  32.                 return HttpResponseRedirect('/receipt/')
  33.  
  34.         else:
  35.             error_message = 'Correct the errors below'
  36.     else:
  37.         form = CheckoutForm()
  38.     page_title = 'Checkout'
  39.     return render_to_response(template_name, locals(), context_instance= RequestContext(request))
  40.  
  41. ##Currently this doesn't seem to be running
  42. def receipt(request, template_name='checkout/receipt.html'):
  43.     order_number = request.session.get('order_number','')
  44.     print 'this is receipt order number: ' + str(order_number)
  45.     if order_number:
  46.         print 'in order_number'
  47.         order = Order.objects.filter(id=order_number)[0]
  48.         order_items = OrderItem.objects.filter(order=order)
  49.         del request.session['order_number']
  50.     else:
  51.         print 'not in order number'
  52.         cart_url = urlresolvers.reverse('show_cart')
  53.         return HttpResponseRedirect(cart_url)
  54.     return render_to_response(template_name, locals(), context_instance=RequestContext(request))
  55.        
  56. from django.conf.urls.defaults import *
  57. from ecomstore import settings
  58.  
  59. urlpatterns = patterns('ecomstore.checkout.views',
  60.                        (r'^$','show_checkout',{'template_name':'checkout/checkout.html','SSL':settings.ENABLE_SSL},'checkout'),
  61.                        (r'^receipt/$','receipt',{'template_name':'checkout/receipt.html','SSL':settings.ENABLE_SSL},'checkout_receipt'),
  62. )
  63.        
  64. urlpatterns = patterns('',
  65.  
  66.                        # Examples:
  67.     # url(r'^$', 'ecomstore.views.home', name='home'),
  68.     # url(r'^ecomstore/', include('ecomstore.foo.urls')),
  69.  
  70.     # Uncomment the admin/doc line below to enable admin documentation:
  71.     # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
  72.  
  73.     # Uncomment the next line to enable the admin:
  74.                        url(r'^admin/', include(admin.site.urls)),
  75.                        (r'^', include('catalog.urls')),
  76.                        (r'^cart/$', include('cart.urls')),
  77.                        (r'^checkout/$', include('checkout.urls')),
  78.                        (r'^receipt/$', include('checkout.urls')),
  79.  
  80. )