Я пытаюсь изменить значение на основе обменного курса, выбранного пользователем в теге <option>
. Я не хочу сохранять результат формы в базу данных. Я просто хочу, чтобы он динамически менялся всякий раз, когда пользователь меняет параметр валюты.
Скажем, пользователь выбирает валюту из формы ниже с параметрами в представлении:
ПОСМОТРЕТЬ
def view(request):
currency_dict = {'EUR': 0.9154994049253867, 'JPY': 123.86706948640484, 'BGN': 1.7905337361530713, 'CZK': 22.375720955781375}
cur = currency_dict.items()
deposit = 10000
context = {
'currency_dict': currency_dict,
'cur': cur,
'deposit': deposit,
}
return render(request, 'coinprices/my-dashboard.html', context)
HTML — ФОРМА
<div class = "container">
<div>
<span>
<h1>My Dashboard</h1>
</span>
<span>
<form method = "post">
<label>Choose Currency:</label>
<input list = "ex-currency">
<datalist id = "ex-currency">
{% for k, v in currency %}
<option value = "{{ k }}"></option>
{% endfor %}
</datalist>
{% csrf_token %}
<button class = "btn btn-outline-success btn-sm">Submit</button>
</form>
</span>
</div>
</div>
Затем в зависимости от выбора пользователей умножьте значение {{ deposit }}
на currency_dict[user_selected_currency]
и измените текст, выделенный жирным шрифтом (см. ниже):
ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ
<span>
<div><b>Total Investment {{ user_selected_currency }}</b></div>
<span class = "text-xl">${{ deposit * currency_dict[user_selected_currency] }}</span>
</span>
Любые идеи, как этого можно достичь?
Вы можете использовать JS для достижения этого довольно легко
К сожалению, это не то, что вы можете сделать с помощью функции render
, вам понадобится запрос GET
с использованием ajax
, когда пользователь изменит значение, а затем вы можете вызвать функцию на основе параметра пользователя и вернуть действительный ответ пользователю это под названием «Связанный выпадающий список». Я нашел эту замечательную статью, которая, возможно, может вам помочь Как реализовать зависимый/связанный выпадающий список с помощью Django
что такое
currency
в твоей форме?