def trade(request, pk): if request.user.is_authenticated(): stock = Stock.objects.get(pk=pk) can_sell = request.user.userprofile.can_sell(stock) price = stock.price() userprofile = request.user.userprofile if request.method == 'POST': form = TradeForm(request.POST, can_sell=can_sell) form.validate_max_shares(stock, userprofile, price) if form.is_valid(): form.save(commit=False).save_with_attrs(form, stock, userprofile, price) return HttpResponseRedirect('/stocks/') else: form = TradeForm(can_sell=can_sell) return render_to_response('stocks/trade.html', { 'form': form, 'stock': stock, 'can_sell': can_sell, 'price': price }, context_instance=RequestContext(request)) else: return render_to_response('stocks/trade.html')