Commit b18d4d96 authored by Louis's avatar Louis

Utilisation de la méthode GET plutôt que POST

parent 65314d73
......@@ -32,7 +32,7 @@
{% endfor %}
</ul>
<form method="post" action="{% url 'utiliser:creer' %}" id="idForm">
<form method="get" action="{% url 'utiliser:creer' %}" id="idForm">
{% csrf_token %}
{% for niveau, exercices in BAG.sorted_levels %}
<div id="tabs-{{ forloop.counter0 }}">
......@@ -40,7 +40,7 @@
{% for exo in exercices %}
{% if forloop.counter0|divisibleby:2 %}<tr>{% endif %}
<td>
<select name="exo-{{ exo.name }}">
<select name="{{ exo.name }}">
<option selected="selected">0</option>
<option>1</option>
<option>2</option>
......
......@@ -25,16 +25,16 @@ def choix(request):
def creer(request):
# Génération de la liste d'exercices
exercices = []
for key in request.POST:
if key.startswith("exo-"):
for key in request.GET:
if key in BAG:
number = 0
for string in request.POST[key]:
for string in request.GET[key]:
try:
number += int(string)
except ValueError:
pass
for i in range(number):
exercices.append(BAG[key[4:]]())
exercices.append(BAG[key]())
# Génération du PDF
if exercices:
parametres = {
......
  • Cela permet d'écrire des liens pour créer à la volée des exercices personnalisés. Par exemple, on peut donner à une classe le lien http://localhost:8000/creer/?EtatStableSysteme2=2&InterpolationMatrices=1 (en remplaçant évidemment localhost:8000 par la bonne URL) pour que chaque élève obtienne sa fiche d'exercices.

  • J'ai dû récemment remplacer la ligne 33 de utiliser/views.py par number += int(string) par number += int(string[0]), car certains navigateurs ajoutaient un code utf-8 (je crois) à la fin de la demande. Je recevais beaucoup de messages d'erreurs du serveur.

  • Est-ce que 34663289 résout le problème ?

    • Si string ne peut pas être analysé comme un nombre, il est ignoré ;
    • le nombre d'exemplaires de chaque exercices est limité à 5 (donc pas de problèmes si on reçoit EtatStableSysteme2=903840983204830945.
  • Pas vraiment, car des utilisateurs risquent de se retrouver bloquer bêtement. Le min est une bonne idée. Mais je laisserais bien le int(string[0]).

Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment