Why wouldn't you fetch the latest (completed) order by that particular user
from the db? No id passing around, and it should give you only one result.

If you pass an id, and don't use the session, make sure the order belongs to
the user, otherwise users could see other users orders based on id
guessing...

Tino

On Fri, Dec 11, 2009 at 19:25, Andy <asdjohn...@gmail.com> wrote:

> 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<django-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>
>

--

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