Comment puis-je accéder au formulaire bouton soumettre valeur dans Django?
J'ai un projet Django qui, sur une seule page, a de multiples formes (tags) qui peut être soumis à différents effets. Dans tous les cas, je veux que l'utilisateur soit redirigé vers la même page, donc j'utilise dans mon point de vue, le modèle de la soumission du formulaire, puis rediriger vers la page d'origine. Dans un cas au moins, la seule différence entre les deux formes est la valeur du bouton "soumettre".
De mon point de vue j'ai le code (qui est la première fois que mon point de vue, la fonction accède à la request.POST
):
if request.POST['submit']=='Add':
#code to deal with the "Add" form
et dans le modèle, la première forme a un bouton de soumission comme
<input type="submit" value="Add">
J'ai pensé que ce serait le travail, mais quand je soumettre ce formulaire, j'obtiens une erreur à la ligne en vue de dessus:
Touche "envoyer" ne trouve pas dans
<QueryDict: {u'clientyear': [u'2012'], u'csrfmiddlewaretoken': [u'be1f2f051f09f6ab0375fdf76cf6a4d7'], u'ben': [u'123405']}>
Évidemment, ce n'est pas un 'submit'
clés ou n'importe quelle touche, la valeur correspondant au bouton "soumettre", j'ai cliqué. Donc, puisque cela ne fonctionne pas, comment pouvez accéder à la valeur du bouton envoyer, ou de dire laquelle de ces formes a été soumis?
OriginalL'auteur murgatroid99 | 2012-05-15
Vous devez vous connecter pour publier un commentaire.
Submit
est un Formulaire HTML structure... Vous devez utiliser l'attribut nom de la forme des objets comme suit... Dans votre template:De votre point de vue:
''
, une chaîne vide est évaluée comme fausse).J'utilise ... pour montrer importiant chose est
name
pasvalue
... Fixant droit maintenant, je vous remercie.Pas de problème. Mais peut-être la façon la plus facile est de remplacer
request.POST.get('list')
avec'list' in request.POST
?Oui, mais la mise en
value
d'un bouton soumettre pourEmpty String
n'est pas logique, car un bouton sans étiquette n'est pas bon dans un formulaire (:est-il une raison pour utiliser
request.POST.get('list')
au lieu derequest.POST['list']
?OriginalL'auteur FallenAngel
Une chose à garder à l'esprit pour éviter la confusion. Le
name
de le bouton d'envoi ne sera pas montrer s'il n'existe qu'un seul bouton dans le formulaire.OriginalL'auteur TheMeaningfulEngineer