i'm having trouble getting ahold of postdata. reason postdata in following function returns empty dict. have shopping cart, i'd users pass shipping preference , calculate total based on field passed.
my form:
class productaddtocartform(forms.form): """ form class add items shopping cart """ quantity = forms.integerfield(widget=forms.textinput(attrs={'size':'2', 'value':'1', 'style':'width: 40px;'}), error_messages={'invalid':'please enter valid quantity.'}, min_value=1) product_slug = forms.charfield(widget=forms.hiddeninput()) shipping = forms.booleanfield(initial=true, required=false) def __init__(self, request=none, *args, **kwargs): """ override default can set request """ self.request = request super(productaddtocartform, self).__init__(*args, **kwargs) def clean(self): """ custom validation check presence of cookies in customer's browser """ if self.request: if not self.request.session.test_cookie_worked(): raise forms.validationerror("cookies must enabled.") return self.cleaned_data
my view:
def show_cart(request, template_name="cart/cart.html"): if request.method == 'post': postdata = request.post.copy() if postdata['submit'] == 'remove': cart.remove_from_cart(request) if postdata['submit'] == 'update': cart.update_cart(request) if postdata['submit'] == 'checkout': checkout_url = checkout.get_checkout_url(request) return httpresponseredirect(checkout_url) cart_items = cart.get_cart_items(request) page_title = 'shopping cart' cart_subtotal = cart.cart_subtotal(request) return render_to_response(template_name, locals(), context_instance=requestcontext(request))
function requiring postdata:
def cart_subtotal(request): cart_total = decimal.decimal('0.00') cart_products = get_cart_items(request) cart_item in cart_products: cart_total += cart_item.product.price * cart_item.quantity return cart_total
Comments
Post a Comment