У меня есть довольно простая утилита, которая получает открытый веб-заказ, если это ключ сеанса, называемый «orderId», и создаст его, если нет ключа сеанса, а параметр « createIfNotFound 'равно true в функции. Пройдя через него с помощью моего отладчика, я вижу, что фрагмент кода, который устанавливает ключ сеанса после создания заказа, попадает без исключений, но когда я проверяю поле сеанса запроса Http, у него нет этого атрибута ?Django - request.session не сохраняется
Utility
def get_open_web_order(request, createIfNotFound=False):
# Check for orderId in session
order_id = request.session.get('orderId')
web_order = None
if None != order_id:
try:
web_order = WebOrder.objects.get(id=order_id, status='O')
logging.info('Found open web order')
except WebOrder.DoesNotExist:
logging.info('Web order not found')
if (None == web_order) and (createIfNotFound == True):
logging.info('Creating new web order')
web_order = WebOrder()
web_order.status = 'O'
web_order.save()
request.session['orderId'] = web_order.id
# Assign logged in user and default billing and shipping
if request.user.is_authenticated() and hasattr(request.user, 'customer'):
customer = request.user.customer
web_order.customer = customer
web_order.set_defaults_from_customer()
web_order.save()
return web_order
Awesome, что работал. Спасибо ! – JBT