Простой калькулятор арктангенса на Django

пишу простой калькулятор, есть два поля в форме первое и второе значение, нужно на страничку вывести результат вычислений, не пойму что написать в функции после валидации полей формы я получаю словарь cleaned_data но переменные num_1 и num_2 не резолвятся, хотя введённые данные в форму там есть в этих переменных:

\views.py

def Atan(request):
    form = AtanForm()
    if request.method == 'get':
        form = AtanForm(request.GET)
        if form.is_valid():
            form = form.cleaned_data
            out_atan = round(math.degrees(math.atan((num_1 / num_2))), 5)
            out_cos = round(math.cos(out_atan * math.pi / 180), 5)
            out_result = round((num_2 / out_cos), 5)
    return render(request, 'landb/atan_convert.html', {
'form': form,
'out_atan': out_atan,
'out_cos': out_cos,
'out_result': out_result
})

\forms.py

class AtanForm(forms.Form):
    num_1 = forms.IntegerField(label='Первое значение',
                               widget=forms.NumberInput(attrs={
                                   'class': 'form-control',
                                   'placeholder': 'Введите первое значение'
                               }))
    num_2 = forms.IntegerField(label='Второе значение',
                               widget=forms.NumberInput(attrs={

Ответы (2 шт):

Автор решения: Za Ars

num_1 и num_2 во первых находятся в форме. а где где то там, а во вторых в словаре form.cleaned_data.

Пример получения num_1 = form.cleaned_data['num_1']


UPD: Примерный вариант, который должен работать

context = {}
if request.method == 'GET':
    form = AtanForm(request.GET)

    if form.is_valid():
        num_1 = form.cleaned_data['num_1']
        num_2 = form.cleaned_data['num_2']

        out_atan = context['out_atan'] = round(math.degrees(math.atan((num_1 / num_2))), 5)
        out_cos = context['out_cos'] = round(math.cos(out_atan * math.pi / 180), 5)
        out_result = context['out_result'] = round((num_2 / out_cos), 5)
    else:
        error = context['error'] = 'Data wrong!!!'

    context.update({
        'form': form
    })

return render(request, 'landb/atan_convert.html', context)
→ Ссылка
Автор решения: Денис Корсачёв

Вопрос решился:

def Atan(request):
form = AtanForm()

out_atan = ''
out_cos = ''
out_result = ''
error = ''

if request.method == 'GET':
    form = AtanForm(request.GET)

    if form.is_valid():
        num_1 = form.cleaned_data['num_1']
        num_2 = form.cleaned_data['num_2']

        out_atan = round(math.degrees(math.atan((num_1 / num_2))), 5)
        out_cos = round(math.cos(out_atan * math.pi / 180), 5)
        out_result = round((num_2 / out_cos), 5)
    else:
        error = 'Data wrong!!!'

return render(request, 'landb/atan_convert.html', {
    'form': form,
    'out_atan': out_atan,
    'out_cos': out_cos,
    'out_result': out_result,
    'error': error
})
→ Ссылка