Django, страница отображает объекты после удаления идентификатора - PullRequest
0 голосов
/ 06 апреля 2019

Я сохранил и идентификатор объекта в сеансе, и я получаю идентификатор для запроса и визуализации значений этой модели, после удаления идентификатора из сеанса значения этой модели все еще отображаются в шаблоне после перезагрузки страницы, как я могупрекрати это?вот мой код

def dashboard(request):
    customer_form = CustomerInfoForm()
    form = TransactionForm(initial={'tax':0,'price':0, 'price_per_item':0})

    if 'id' in request.session:
        id =  request.session['id']
        print('Id in dashboard is ', id)
        order = Order.objects.get(pk=id).item_set.all()
        sum_of_price = order.aggregate(Sum('price'))
        #Get sum of all item prices.
        if sum_of_price :
            context['price'] = sum_of_price['price__sum']
            context['current_order'] = Order.objects.get(pk=id).item_set.all()
    context['form'] = form
    context['customer_form'] = customer_form
    return render(request, 'main/dashboard.html', context)```

In the second view i am deleting the id and when i reload the page the first view still query and render values to the page, 

```@csrf_exempt
def add_order_as_credit(request):
    try:
        price = request.POST.get('price')
        id = request.session.get('id')
        order = Order.objects.get(pk=id)
        order.price = price
        order.save()
        print('Id is  ', request.session['id'])
        print('Price is ' + price)
        del request.session['id']
        return JsonResponse('Order has been set as credit', safe=False)
    except (KeyError, Order.DoesNotExist):
        return JsonResponse('There is no order ', safe=False)```

1 Ответ

0 голосов
/ 06 апреля 2019

В некоторых случаях требуется явно пометить сеанс как измененный:

del request.session['id']
request.session.modified = True

См. документы Django по сеансам .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...