2017-02-02 4 views
0

J'ai un formulaire masqué dans le modèle Dajngo (1.10) et j'aimerais transmettre des données à views.py. J'ai suivi la voie habituelle mais le résultat de l'obtention de données n'est rien. Pourriez-vous nous dire ce qui a mal tourné et comment y remédier? Merci beaucoup. Le code est comme ci-dessous pour référence:Vues Django Obtenir des données POST

modèle

:

 <form style="display: hidden" action="/exRpt/" method="POST" id="#form99"> 
      {% csrf_token %} 
      <input type="hidden" id="var199" name="var199" value=""/> 
      <input type="hidden" id="var299" name="var299" value=""/> 
     </form> 
<script> 
     $(document).on('click', '.exWord', function(){ 
      $("#var199").val("ExWord"); 
      $("#var299").val("1,4,10"); 


      $("#form99").submit(); 
      window.location.href = "/exRpt/" 
     }); 
</script> 

views.py:

def exRpt(request): 
    in_type = request.POST.get('var199') 
    in_news = request.POST.get('var299') 
    ... 
    response = HttpResponse(f.getvalue(), content_type='application/vnd.ms-word') 
    response['Content-Disposition'] = 'attachment; filename=SelectedNewsReport.docx' 
    return response 
+0

Je pense que votre script n'est pas exécuté dans ce code, donc le formulaire n'obtient pas ces valeurs. –

+1

Vous ne devez pas inclure le '#' dans l'ID du formulaire: '

' – Alasdair

+0

@Alasdair a raison. Votre code JS ne sélectionne pas le formulaire, donc vous ne postez pas sur la vue. C'est une requête get (à partir de votre instruction 'window.location.href', dont vous n'avez pas besoin si le submit fonctionne correctement). Pour confirmer que vous pouvez imprimer 'request.method' dans votre fonction d'affichage. Mettez à jour l'ID comme @alasdair mentionné et cela devrait fonctionner correctement. – sundance

Répondre

0

il sera same input avec la même détail que vous devriez changone d'entre eux, puis avec javascript ensemble val.