web-dev-qa-db-fra.com

Django - prenant les valeurs de POST request

J'ai le texte suivant Django (http: // IP/admin/start/est attribué à une vue hypothétique appelée vue):

{% for source in sources %}
  <tr>
    <td>{{ source }}</td>

    <td>
    <form action="/admin/start/" method="post">
      {% csrf_token %}
      <input type="hidden" name="{{ source.title }}">
      <input type="submit" value="Start" class="btn btn-primary">
    </form>
    </td>

  </tr>
{% endfor %}

sources est la objects.all() d'un modèle Django référencé dans la vue. Chaque fois qu'une entrée "Démarrer" est soumise, je veux le "début" Pour utiliser les données {{ source.title}} dans une fonction avant de renvoyer une page rendue, comment collecter les informations POSTÉES (dans ce cas, dans l'entrée masquée) dans Python?)?

67
Randall Ma

Découvrez les objets de requête que vos vues reçoivent: https://docs.djangoproject.com/en/dev/ref/request-response/#httprequest-objects

De plus, votre champ masqué nécessite un nom fiable, puis une valeur:

<input type="hidden" name="title" value="{{ source.title }}">

Puis dans une vue:

request.POST.get("title", "")
112
jdi

Si vous devez faire quelque chose au départ, vous pouvez répondre à l'événement onsubmit de votre formulaire. Si vous publiez simplement sur admin/start, vous pouvez accéder aux variables de publication dans votre vue via l'objet de requête. request.POST qui est un dictionnaire de variables post

11
dm03514