django - ce qui se passe dans l'action du formulaire paramètre lors de l'affichage nécessite un paramètre?
C'est ce que j'ai:
myview.py
avec une vue qui prend un paramètre user
:
def myview(request, user):
form = MyForm(request.POST)
....
return render_to_response('template.html',locals(), context_instance=RequestContext(request))
La user
est transmis par le biais d'une url.
urls.py
:
...
urlpatterns += patterns('myview.views',
(r'^(?P<user>\w+)/', 'myview'),
)
...
J'ai aussi un template.html
avec un formulaire:
<form name="form" method="post" action=".">
...
</form>
Ce qui se passe dans l'action du formulaire paramètre si myview
fonction nécessite un paramètre?
Droit maintenant, j'ai action="."
. La raison pour laquelle je me demande c'est parce que quand je remplis le formulaire (templates.html) et cliquez sur le bouton "soumettre" je ne vois absolument pas le champ des valeurs transmises par ce formulaire. C'est presque comme si je suis de passage d'une forme vide, quand je clique sur le bouton "soumettre". Des idées? Merci!!!!
Vous devez vous connecter pour publier un commentaire.
Vous postez le même point de vue qui sert aussi de la forme. Au premier abord, la vue est appelée et sert le formulaire. Lorsque vous validez le formulaire, le même point de vue est appelée, mais cette fois vous traiter le formulaire. C'est pourquoi l'action est vide.
Si vous souhaitez définir explicitement l'action, en supposant que vous avez une variable nom d'utilisateur dans votre modèle,
ou vous pouvez assigner un nom pour l'url dans votre urls.py donc, vous pouvez référencer comme ceci:
Il ne devrait pas exiger quoi que ce soit. En supposant que vous êtes à l'url suivante:
Votre formulaire doit être:
À ce stade, vous êtes déjà dans
myview
avec l'utilisateurjohnsmith
. Votre vue doit ressembler à l'exemple suivant:action="."
est suffisant pour résoudre le problème avec google chrome?Vous pouvez utiliser
request.path
et qui fonctionne dans la plupart des cas.