Tom - DR's method is simple and effective, but I'm guessing you say
it's the worst way because it creates an unnecessary database
request.  Is this a correct assumption?  If not, please explain.


On Dec 11, 10:58 am, Tom Evans <tevans...@googlemail.com> wrote:
> On Fri, Dec 11, 2009 at 4:44 PM, Andy <asdjohn...@gmail.com> wrote:
> > Thank you DR.  For other newbies out there I changed my views to this
> > and it worked great:
>
> > articles = Context({'articles': Articles.objects.all()})
>
> > def order(request):
> >        if request.method == 'POST':
> >                form = OrderForm(request.POST)
> >                if form.is_valid():
> >                        current_order = form.save()
> >                        order_info = Context({'order_info': current_order})
> >                        request.session['order_info'] = order_info
> >                        return HttpResponseRedirect('/order_complete/')
> >        else:
> >                form = OrderForm()
>
> >        return render_to_response('order.html', {'form': form}, articles)
>
> > def order_complete(request):
> >        order_info = request.session['order_info']
> >        return render_to_response('order_complete.html', order_info,
> > articles)
>
> This is the worst way to pass state. The state should be passed via
> the user, rather than storing it in the session. Your view should look
> something like this:
>
> def order(request):
>   if request.method == 'POST':
>     form = OrderForm(request.POST)
>     if form.is_valid():
>       order = form.save()
>       return HttpResponseRedirect(reverse('order_complete', args=[order.id]))
>   else:
>     form = OrderForm()
>
>   return render_to_response('order.html', {'form': form}, articles)
>
> def order_complete(request, order_id=None):
>   order = get_object_or_404(Order, id=order_id)
>   return render_to_response('order_complete.html', {'order': order}, articles)
>
> Cheers
>
> Tom

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.


Reply via email to