Просто добавлю, поскольку никто не сказал этого, и, кажется, вы этого еще не поняли:
Ваше представление client_items
должно каким-то образом иметь доступ к переменной order_no
. Если по какой-то причине значение не передается через URL, оно должно получить значение от somehwere. Есть только три реальных местоположения, где это могло бы получить это значение:
- База данных : это будет работать, если вы, например, храните что-то вроде корзины, которая напрямую связана с пользователем. Так, например, вы можете сделать что-то вроде
order_no = Order.objects.filter(cart__user=request.user).order_no
, которое получит заказ, связанный с текущей корзиной пользователя, а затем вернет значение order_no
.
- Сеанс : вы сохраняете order_no в сеансе. Это предполагает, что у вас было более раннее представление, в котором было установлено значение для
order_no
, и в этот момент вы сохраните его, используя request.session['order_no']=order_no
. Позже, когда вы захотите получить значение, вы просто используете order_no=request.session['order_no']
в представлении.
- Cookie : не очень рекомендуется, но, тем не менее, вариант. Это сложно, потому что на первый взгляд вам нужно создать объект ответа (как в
resp = render_to_response(template_name, locals(), RequestContext(request))
и , затем записать в него cookie resp.set_cookie("order_no", order_no)
. Вы получаете его с помощью request.COOKIES['order_no']
Существуют и другие, причудливые места, в которых можно хранить значение: файлы, кэш, другие форматы хранения данных и т. Д. Совсем не рекомендуется.