UnboundLocalError: локальная переменная 'currency' упоминается перед присвоением Django
Здесь много вопросов с подобной ошибкой, но не могу найти конкретное решение для моего случая.
У меня есть форма, в которой есть список символов валют, при выборе которых пользователем, значения на странице будут меняться. Я использую символ, выбранный пользователем, как диктующий ключ для изменения курсов. Однако я получаю ошибку в заголовке.
FORM
class CurrencyForm(forms.Form):
currency = forms.ChoiceField(initial=('USD', 'USD'), choices=['USD', 'AUD', 'GBP' 'CAD'], label='Choose Currency:')
VIEW
class MyDashboardView(TemplateView):
template_name = 'coinprices/my-dashboard.html'
def get(self, request, **kwargs):
form_c = CurrencyForm(prefix='form_c')
return render(request, self.template_name, {
'form_c': form_c,
})
def post(self, request):
form_c = CurrencyForm(request.POST, prefix='form_c')
if request.method == 'POST':
if form_c.is_valid():
currency = form_c.cleaned_data['currency']
rates = {'USD': 1.0, 'AUD': 1.321, 'GBP': 0.764, 'CAD': 1.249}
deposit = 10000 / rates[currency]
context = {
'deposit': deposit
}
return render(request, 'coinprices/my-dashboard.html', context)
HTML
<span>
<form method="post">
{% csrf_token %}
{{ form_c.as_p }}
<button class="btn btn-outline-success btn-sm">Submit</button>
</form>
</span>
Traceback (most recent call last):
File "", line 55, in inner
response = get_response(request)
File "", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "", line 84, in view
return self.dispatch(request, *args, **kwargs)
File "", line 119, in dispatch
return handler(request, *args, **kwargs)
File "", line 245, in post
deposit = 10000 / rates['currency']
UnboundLocalError: local variable 'currency' referenced before assignment