Как получить разные имена в методе request.post

У меня проблема, я делаю веб для выполнения заданий SQLServer Agent, где если у задания есть параметры, то оно перенаправляет меня на другую страницу, где я могу ввести свои параметры. Моя проблема заключается в отправке этих параметров. Я не знаю, как передать все параметры из моего html в мой view.py. Все вводимые параметры имеют разные имена, и я действительно не знаю, как заставить запрос принимать разные имена вводимых параметров. Я добавлю немного кода ниже. IM комментирует строку, где у меня проблема

parameters.html

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>{% block title %} Parametros {% endblock %}</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
</head>

<div class="container">
    <div class="row">
        <div class="col-md-4 offset-md-4">
            <br><br>
            <div class="card">
                <div class="card-header">
                    <h3>Parámetros</h3>
                </div>
                <div class="card-body">
                    <form method="post">
                        {% csrf_token %}
                        {% for i in parameters %}
                        <!-- Parameters input -->
                        <div class="form-outline mb-4">
                            <label class="form-label" for="form2Example1">{{ i.parameter_name }}</label>
                            {% if i.parameter_type == 'Int' %}
                            <input type="number" id="form2Example1" class="form-control" name="int" />
                            {% else %}
                            {% if i.parameter_type == 'Decimal' %}
                            <input type="text" id="form2Example1" class="form-control" name="decimal" />
                            {% else %}
                            {% if i.parameter_type == 'String' %}
                            <input type="text" id="form2Example1" class="form-control" name="string" />
                            {% else %}
                            {% if i.parameter_type == 'Date' %}
                            <input type="date" id="form2Example1" class="form-control" name="date" />
                            {% endif %}
                            {% endif %}
                            {% endif %}
                            {% endif %}
                        </div>
                        {% endfor %}
                        <!-- Submit button -->
                        <button type="submit" class="btn btn-primary btn-block mb-4">Ejecutar</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

views.py

#job execution
def ejecutar(request, job_name):
    cursor = connection.cursor()
    job = Jobs.objects.get(job_name=job_name)
    if job.flag_params == 0:
        cursor.execute("EXEC msdb.dbo.sp_start_job '" + job.job_name + "'")
        return HttpResponse("""<html><script>alert("Job ejecutado");window.location.replace('/home');</script></html>""")
    else:
        #redirects to parameters.html
        redirect('parameters.html', job_name=job.job_name)
        #get job parameters
        parameters = Parametros.objects.filter(job_id=job.id)
        if request.method == 'POST':    
            for parameter in parameters:
                #update parameters
                #Here I got the problem, in request.POST(), how can I get different input names from parameters.html (decimal, int, string, date)
                cursor.execute("UPDATE Jobs_parametros SET parameter_value='" + request.POST['decimal'] + "' WHERE parameter_name='" + parameter.parameter_name + "' AND job_id='" + str(job.id) + "'")
            cursor.execute("EXEC msdb.dbo.sp_start_job '" + job.job_name + "'")
            return HttpResponse("""<html><script>alert("Job ejecutado");window.location.replace('/home');</script></html>""")
        return render(request, 'parameters.html', {'parameters': parameters})

models.py

class Usuarios(models.Model):
    id = models.AutoField(primary_key=True)
    username = models.CharField(max_length=100)

class Jobs(models.Model):
    id = models.AutoField(primary_key=True)
    job_name = models.CharField(max_length=100)
    flag_activo = models.BooleanField(default=True)
    flag_params = models.BooleanField(default=False)

class DetailJobUser(models.Model):
    id = models.AutoField(primary_key=True)
    user = models.ForeignKey(Usuarios, on_delete=models.CASCADE)
    job = models.ForeignKey(Jobs, on_delete=models.CASCADE)

class Parametros(models.Model):
    id = models.AutoField(primary_key=True)
    job = models.ForeignKey(Jobs, on_delete=models.CASCADE)
    parameter_name = models.CharField(max_length=100)
    parameter_type = models.CharField(max_length=100)
    parameter_value = models.CharField(max_length=100)

Спасибо за ваши ответы :D

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