@smsi

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

Направьте в нужную сторону.
Изучаю Джанго.
Есть модель с ценой товара в долларах и коэффициентом пересчета в евро и другие валюты. Для каждого товара в базе данных сохранен свой коэффициент
Хочется сделать так: в шаблоне html пользователь выбирает валюту, значение выбранной валюты сохраняется в какую-нибудь переменную.
Цена товара отображается в выбранной валюте, при этом цена в долларах просто умножается на переменную.
Не пойму, как это можно сделать в Джанго.
Пользователи анонимные, куки использовать не вариант.
Как сохранить выбор валюты пользователем в текущем сеансе?
Что использовать?
Спасибо
  • Вопрос задан
  • 483 просмотра
Решения вопроса 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
Пользователи анонимные, куки использовать не вариант.

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

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

Похожие вопросы