Request.POST не содержит информации о нажатой кнопке

Этот код у меня есть в forms.py

class RsaForm(forms.Form):
primeP = forms.IntegerField(label='Prime number (p)', required=True)
primeQ = forms.IntegerField(label='Prime number (q)', required=True)
clearText = forms.CharField(label='Cleartext', widget=forms.Textarea, required=False)    
cipherText = forms.CharField(label='Ciphertext', widget=forms.Textarea, required=False)

А это код, который у меня есть в views.py, который я использую с моим шаблоном rsa.html

def rsaView(request):
# if this is a POST request we need to process the form data
if request.is_ajax and request.method == 'POST':
    # create a form instance and populate it with data from the request:
    form = RsaForm(request.POST)
    # check whether it's valid:
    if form.is_valid():
        # process the data in form.cleaned_data as required
        pParam = form.cleaned_data['primeP']
        qParam = form.cleaned_data['primeQ']
        cleartextParam = form.cleaned_data['clearText']
        ciphertextParam = form.cleaned_data['cipherText']
        print(request.POST)
        
        pubkey, privkey = rsa.gen_keys(pParam, qParam)
        if 'encryptinput' in request.POST:
            # Encriptacion RSA
            print('Encriptado.')
            ciphertext = rsa.encrypt(cleartextParam, pubkey)
            return JsonResponse({"ciphertext": ciphertext}, status=200)

        elif 'decryptinput' in request.POST:
            # Desencriptacion RSA
            print('Desencriptado.')
            cleartext = rsa.decrypt(ciphertextParam, privkey)
            return JsonResponse({"cleartext": cleartext}, status=200)
        else:
            return JsonResponse({"error": "Hubo un error."}, status=200)

    else:
        print("Invalid form.")


# if a GET (or any other method) we'll create a blank form
else:
    form = RsaForm()

thisCryptosystem = Cryptosystem.objects.get(name="RSA")
template = loader.get_template('cryptogyapp/rsa.html')
context = {
    'thisCryptosystem': thisCryptosystem,
    'form': form
}
return HttpResponse(template.render(context, request))

А это мой rsa.html

{% extends "cryptogyapp/base.html" %}
{% block title %}{{ thisCryptosystem.name }} Cryptosystem{% endblock %}
{% block title-header %}{{ thisCryptosystem.name }} Cryptosystem{% endblock %}
{% block subtitle-header %}{{ thisCryptosystem.desc }}{% endblock %}
{% block content %}
<form id="rsaForm" method="post">
    {% csrf_token %}
    <div class="row gx-5 justify-content-center">
        <div class="col-lg-6">
            <div class="form-floating mb-3">
                <input name="{{form.primeP.name}}" class="form-control" id="primeq" type="text" placeholder="Enter a prime number...">
                <label name="primeP">Prime number (p)</label>
            </div>
            <div class="form-floating mb-3">
                <input name="{{form.primeQ.name}}" class="form-control" id="primep" type="text" placeholder="Enter a prime number...">
                <label name="primeQ">Prime number (q)</label>
            </div>
            <div class="form-floating mb-3">
                <textarea name="{{form.clearText.name}}" class="form-control" id="cleartextarea" type="text" placeholder="Enter a cleartext..."></textarea>
                <label name="primeP">Cleartext</label>
            </div>
            <div class="form-floating mb-3">
                <textarea name="{{form.cipherText.name}}" class="form-control" id="ciphertextarea" type="text" placeholder="Enter a ciphertext..."></textarea>
                <label name="primeP">Ciphertext</label>
            </div>
            <input class="btn btn-primary" type="submit" value="Encrypt" name="encryptinput"/>
            <input class="btn btn-primary" type="submit" value="Decrypt" name="decryptinput"/>
        </div>
    </div>
</form>
{% endblock content %}

Когда я нажимаю кнопку Encrypt или Decrypt, информация не передается в request.POST, единственное, что request.POST показывает мне, это информацию из полей формы, но не кнопку, которая была нажата.

Вернуться на верх