Получение KeyError в request.session - PullRequest
0 голосов
/ 14 мая 2018

Вот мой код для использования сессии в Django. Все вроде нормально, но получаю KeyError в / addfixeddeposit /

views.py

def anotherpage(request, account_number):
    form = FixedDepositForm()
    context = {'form' : form}
    request.session['account_number'] = account_number
    return render(request, 'bankmanagement/another_page.html', context)

def addfixeddeposit(request):
    if request.method == "POST":
        var = request.session['account_number']
        print(var)
        form = FixedDepositForm(request.POST)
        if form.is_valid:
            acc = Account.objects.get(pk = var)
            tenure = request.POST['tenure']
            rate = reuquest.POST['rate']
            new_fixed = FixedDeposit(account_number = acc, tenure = tenure, rate = rate)
            new_fixed.save()
            del request.session['account_number']
            return redirect('behome')
    return redirect('behome')

Это HTML-страница, в которой я использую значение сеанса. А затем в addfixeddeposit в views.py

another_page.html

<form method="POST" action="{% url 'addfixeddeposit' %}">
                {% csrf_token %}
                <div class="form-field">
                    <table>
                        <tr>
                            <td><label for="accountnumfield" class="label--required">Account Number</label></td>
                            <td><label id="accountnumfield">{{ request.session['account_number'] }} </td>
                        </tr>
                        <tr>
                            <td><label for="tenure" class="label--required">Tenure</label></td>
                            <td><span id='tenure'>{{ form.tenure }}</span></td>
                        </tr>
                        <tr>
                            <td><label for="rate" class="label--required">Rate</label></td>
                            <td><span id='rate'>{{ form.rate }}</span></td>
                        </tr>
                    </table>
                </div>
                <div class="form-buttons">
                    <button type="submit" class="a-btn--filled">Add</button>
                </div>
            </form>

1 Ответ

0 голосов
/ 15 мая 2018

Если вы хотите отправить account_number из моих шаблонов в представления, используйте строку запроса, чтобы упростить, например, в ваших шаблонах:

<form method="POST" action="{% url 'addfixeddeposit' %}?account_number={{account_number}}">

А потом в вашем views.py сделать:

var = request.GET.get('account_number')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...