Django, зачем бы страницы отображать объекты, которые были удалены из базы данных - PullRequest
0 голосов
/ 07 апреля 2019

Я сохраняю и идентификатор объекта в сеансе, а затем получаю его для запроса и отображения объектов этих моделей, но когда я удаляю этот идентификатор из сеанса, а также удаляю эти объекты из БД, я по-прежнему получаю эти объекты после перезагрузки страницычто не то, что я хочу, эти объекты исчезают только после перезапуска сервера, см. код

this is where i am deleting the objects from the db and deleting the session
def reset(request):
    try:
        id = request.session.get('id')
        if id:
            Item.objects.filter(order=id).all().delete()
            Order.objects.get(pk=id).delete()
            del request.session['id']
            print('Id have been deleted ', request.session['id'])
            return JsonResponse('The current order has been delete', safe=False)
        else:
            print('There\'s no order')
            return JsonResponse('There was no order', safe=False)
    except Exception as e:
        return JsonResponse('An error occured here ' + str(e), safe=False)

This is where i am querying and rendering objects to template after testing if id is in session before querying

@login_required
def dashboard(request):
    customer_form = CustomerInfoForm()
    form = TransactionForm(initial={'tax':0,'price':0, 'price_per_item':0})
    try:
        if 'id' in request.session:
            id =  request.session['id']

            print('Id in dashboard is ', id)
            order = Order.objects.get(pk=id)
            sum_of_price = order.item_set.all().aggregate(Sum('price'))
            #Get sum of all item prices.
            if sum_of_price :
                context['price'] = sum_of_price['price__sum']
                context['current_order'] = order.item_set.all()
                form = TransactionForm(initial={'tax':0,'price':0, 'price_per_item':0,'contact':order.customer_contact})
        context['form'] = form
        context['customer_form'] = customer_form
        return render(request, 'main/dashboard.html', context)
    except Exception as e:
        return render(request, 'main/dashboard.html', context)

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