@smsi

Django — как сохранить выбор одного значения из нескольких в переменную в шаблоне html и использовать ее в дальнейшем?

Направьте в нужную сторону.
Изучаю Джанго.
Есть модель с ценой товара в долларах и коэффициентом пересчета в евро и другие валюты. Для каждого товара в базе данных сохранен свой коэффициент
Хочется сделать так: в шаблоне html пользователь выбирает валюту, значение выбранной валюты сохраняется в какую-нибудь переменную.
Цена товара отображается в выбранной валюте, при этом цена в долларах просто умножается на переменную.
Не пойму, как это можно сделать в Джанго.
Пользователи анонимные, куки использовать не вариант.
Как сохранить выбор валюты пользователем в текущем сеансе?
Что использовать?
Спасибо
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
@gh0sty
Веб-разработчик. Пишу под Python Django.
Во первых, сделай какую-нибудь валюту основной. Чтобы не парится с перерасчетами.
Во вторых, передавай в темплейт (через контекст) свои коэффициенты + базовую валюту.
В третьих, сделай изменения визуальными через JS.
Например, по клику на валюту изменяй цены:
var price = {{price}};
var usd_to_eur = {{coeff.usd_to_eur}};
var usd_to_btc = {{coeff.usd_to_btc}};
$('#eur_btn').on('click', function () {
    var new_price = price * usd_to_eur;
    $('#price').text(new_price);
});
...

В четвертых, если это форма, до добавь hidden input с ценой в USD.

Если хочешь проще - передавай в темплейте (в контексте) уже готовые цены и просто меняй по клику.

Теперь о сессиях и выборе валюты.
По клику на валюту (также) передавай ajax-запрос на выделенный урл и сохраняй в сессии

Если что - будет выглядеть как-то так:
$('#eur_btn').on('click', function () {
    $.ajax({
        url : "/valutes/eur/",
        type : "post",
        data : $('#hidden-input-form').serialize()
    });
});
...

Где #hidden-input-form форма, метода post, состоящая только из hidden input "valute". Крч, невидимая форма с твоими долларами и пр. Не забудь про csrf_token!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tema_sun
@tema_sun
Пользователи анонимные, куки использовать не вариант.

Чего это вдруг? Вполне себе вариант.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
11 авг. 2020, в 00:34
10000 руб./за проект
10 авг. 2020, в 23:01
1500 руб./за проект
10 авг. 2020, в 19:19
20000 руб./за проект