Невозможно получить значение повар ie - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть скрипт, который вызывает подсказку, когда я нажимаю sh кнопку и получает номер от пользователя. Номер хранится у повара ie. Затем этот скрипт загружает представление, которое получает число от повара ie и передает его в форму.

В настоящее время я сохраняю повара ie; Я вижу это в отладчике браузера. Но когда я пытаюсь получить повара ie на мой взгляд, он всегда возвращает ноль.

Я думаю, что запрос отправляет повара ie с нулевым значением до обновления повара ie.

JavaScript

$(document).ready(function() {
    $(document).off('click', '.order_button').on('click', '.order_button', function() {
        // $(".on_button").click(function() {
        var amount = prompt("Please enter amount of orders" ,"0")
        if (parseInt(amount) <= 0 /* || amount === null */) {
            alert("Please enter integer greater than 0")
        } else if (parseInt(amount) > 0) {
            document.cookie = "amount=" + amount; //+ ";max-age=60";
            console.log(document.cookie)
            var link = $(this).find('a');
            console.log(link.attr('href'));
            window.location.href=link.attr('href');
            console.log("OK");
        }
        return false;
    });
});

Просмотр

def add_order(request, meal_slug, meal_restaurant):
    print("OK")
    amount = get_server_side_cookie(request, 'amount', '1')
    print(amount)
    //clear_amount_cookie(request)
    if amount is not None:
        meal = Meal.objects.get(
            slug=meal_slug, restaurant_slug=meal_restaurant)
        user = UserProfile.objects.get(user=request.user)
        order = Order.objects.create(
            meal=meal, customer=user, amount=amount, date=datetime.now())
        order.save()
        //clear_amount_cookie(request)
    return redirect('food_cloud:index')

Получить повар ie функция

def get_server_side_cookie(request, cookie, default_val=None):
    val = request.COOKIES.get(cookie)
    print(val) //This is where I see the null value
    try:
        int(val)
    except (ValueError, TypeError):
        val = default_val
        print(val + " here")
    return val

1 Ответ

0 голосов
/ 02 апреля 2020

Я решил проблему, реализовав jquery .cookies. js объекты Ссылка: https://github.com/carhartl/jquery-cookie

Затем я заменил код для создания повара ie. Очевидно, JQuery не подходит для непосредственной обработки файлов cookie

Измененный код

$(document).ready(function() {
    $(document).off('click', '.order_button').on('click', '.order_button', function() {
        var amount = prompt("Please enter amount of orders" ,"0");
        if (parseInt(amount) <= 0 /* || amount === null */) {
            alert("Please enter integer greater than 0")
        } else if (parseInt(amount) > 0) {
            Cookies.set('amount', amount) //This is the new code for creating cookie
            console.log(document.cookie)
            var link = $(this).find('a');
            console.log(link.attr('href'));
            window.location.href=link.attr('href');
            console.log("OK");
        }
        return false;
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...