2010-08-20 5 views
0

Je souhaite transmettre un paramètre lorsque je clique sur le bouton Soumettre.Paramètre de passe de formulaire Django à partir du modèle à afficher par le bouton Soumettre

urls.py

urlpatterns = patterns('', 
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), 
    (r'^home/$', 'views.home'), 
    (r'^home/(?P<build>[^/]+)/$', 'views.run'), 
    (r'^run/delete/$', 'views.runDelete') 
) 

run.html

<form name="form" method="post" action="/run/delete"> 
<input type="submit" value="Delete" style="margin-left:149px; width:80px; height:30px"> 
<table border="1"; borderColor=black> 
<td></td> 
<td><b>Run</b></td> 
    {% for run in run_list %} 
     <tr> 
     <td>{{run.build}}</td> 
     <td><input type="checkbox" name="var_delete" value="{{run.id}}"></td> 
     <td>{{run.name}}</td> 
     </tr> 
    {% endfor %} 
    </table> 
    </form> 

views.py

def run(request, build): 
    run_list = TestRun.objects.all().order_by('id') 
    return render_to_response('run.html', {'run_list': run_list}) 

def runDelete(request): 
    run_list = request.POST.getlist('var_delete') 
    for run in run_list: 
     run = int(run) 
     TestRun.objects.get(id=run).delete() 
    return render_to_response('???') 

je veux montrer nouveau run.html, mais comment puis-je passer run.build en tant que paramètre de runDelete? merci: D

Répondre

0

Qu'est-ce qui est présent dans run.build?

Pour un, vous pouvez en faire un champ caché d'entrée (autre que d'afficher comment vous l'affichez déjà) et ainsi, la valeur sera présente dans request.POST.

Vous pouvez également en faire la partie de l'URL. Mais peut ne pas convenir à votre cas.

+0

comment écrire un champ caché d'entrée? – LoveTW

+2

, à partir de views.run passer 'build' comme argument au template – Ashok

+0

merci beaucoup: D – LoveTW

Questions connexes