Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

148
Views
¿Hay alguna forma de enviar múltiples formularios con un solo botón y valores ocultos únicos?

Nota: he visto algunas publicaciones que son bastante similares a las mías, pero no creo que esas soluciones ayuden en mi caso de uso. Mi sitio web (creado con Django) tiene una página para cobrar los pagos de las cuotas.

Hay una página por familia, en la que habrá múltiples cuotas a pagar por cada miembro. Actualmente, tengo un botón de envío para cada vencimiento, como puede ver en el código a continuación.

 {% for due in dues %} <tr> <td>{{due.0}}</td> <td>{{due.1}}</td> <td>{{ due.3}}</td> <td>{{ due.4 }}</td> <td>{{ due.5 }}</td> <td><form action="/dues/?family-dues={{ familyprofile }}" method="POST" id= "dues-payment"> {% csrf_token %} <input type="text" placeholder="Enter Amount" name="amount"> <input type="hidden" value="{{due.2}}" name="due-id"> <input type="hidden" value="{{due.0}}" name="member-id"> <input type="hidden" value="{{duefamily.0}}" name="family-id"> <button id="submit-payment">Pay</button></form></td> </tr> {% endfor %}

El problema con esto es que solo se puede hacer un pago a la vez. ¿Hay alguna manera en la que pueda enviar todos los formularios de una sola vez? ¿Para que el cajero pueda simplemente ingresar los pagos apropiados en cada cuadro de texto y cuando se envíen todos los valores del cuadro de texto (cantidad pagada) junto con la identificación adeudada se devuelvan de una sola vez?

Escenario actual

 Due ID 1 textbox(Value is 40) Pay Button Due ID 2 textbox(Value is 80) Pay Button Due ID 3 textbox(Value is 100) Pay Button

Si una persona llega a pagar un total de $220 (como se muestra arriba) en tres categorías de vencimiento de pago, se debe presionar el botón de pago tres veces. ¿Hay alguna manera de que lo anterior se pueda cambiar al siguiente escenario?

Escenario deseado

 Due ID 1 textbox(Value is 40) Due ID 2 textbox(Value is 80) Due ID 3 textbox(Value is 100) Pay Button

Estoy abierto a todas las ideas que puedan ayudarme a resolver mi problema. Gracias por adelantado:)

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El enfoque más simple sería hacer que toda la tabla fuera una sola forma.

 <form action="/dues/?family-dues={{ familyprofile }}" method="POST" id= "dues-payment"> {% csrf_token %} <table> {% for due in dues %} <tr> <td>{{ due.0 }}</td> <td>{{ due.1 }}</td> <td>{{ due.3 }}</td> <td>{{ due.4 }}</td> <td>{{ due.5 }}</td> <td> <input type="text" placeholder="Enter Amount" name="due-{{ due.2 }}-amount"> </td> </tr> {% endfor %} </table> <input type="hidden" value="{{ ?? }}" name="member-id"> <input type="hidden" value="{{ duefamily.0 }}" name="family-id"> <button id="submit-payment">Pay</button> </form>

Tenga en cuenta que agregué los ID debidos a los nombres de los campos que se muestran en cada línea. Ahora tendrá que hacer un poco de análisis de cadenas en el lado de Django para unirlas.

También es posible que desee consultar Django Formsets , que le permite definir todo el formulario en Python y simplemente llamar a form.as_table() en la plantilla. También tiene soporte para formularios anidados como este.

Editar

Creo que también debería poder hacer la cantidad de entradas como esta y luego obtener listas en Django, pero desafortunadamente no puedo probar si funciona. Obtendría uno llamado due-id y otro llamado due-amount , y luego confiaría en los valores para cada coincidencia de índice.

 <td> <input type="text" placeholder="Enter Amount" name="due-amount[]"> <input type="hidden" value={{ due.2 }} name="due-id[]"> </td>
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!