2 votes

Transférer la valeur d'une option de sélection dans un modèle d'url nommé à l'aide de Django et Jquery

J'ai une liste déroulante dans mon modèle django :

<select name="submit_new" id="submit_new">
    <option value="Stdo">Studio</option>
    <option value="Flm">Film</option>
    <option value="Drctr">Director</option>
</select>
<button type="submit_type" id="submit_new_button">Go</button>

Je voudrais prendre la valeur de la sélection et la passer dans le modèle django named url

$("#submit_new_button").click(function() {
    var NewLink = {% url add_record $("#submit_new").val() %}
    window.location.href = NewLink
});

Il est clair que, tel qu'il est écrit, cela ne fonctionne pas. Comment puis-je utiliser le motif nommé {% url add_record VAR %} en combinaison avec la valeur jquery $("#submit_new").val() ?

modifier :

Mon entrée url pour add_record est :

url(r'^add_(?P<modelname>\w+)/$', views.generic_change, name = 'add_record')

2voto

istruble Points 5686

C'est certainement un problème avec l'entrée add_record dans urls.py mais le modèle a aussi besoin d'un peu d'aide. Essayez d'être explicite avec tous les arguments pour cela url entrée. Vous pourrez passer à une notation plus courte plus tard, mais pour l'instant, essayez ceci pour que les choses fonctionnent :

url(r'^add_(?P<modelname>\w+)/$', 
    view='your_app.views.generic_change', 
    name='add_record')

Et ensuite, essayez ceci dans votre modèle :

$("#submit_new_button").click(function() {
    var link = '{% url add_record 'NEWVALUESTUB' %}';
    link = link.replace('NEWVALUESTUB', $("#submit_new").val());
    window.location.href = link;
});

1voto

<script>
$("#next-button").click(function() {
    var countryid = $('input:radio[name=countries_list]:checked').val();
    var link = "{% url 'selectbank' value=2 %}";
    link = link.replace('2', countryid);
    window.location.href=link;
    });
</script>

J'avais le même problème avec les boutons radio. J'ai suivi la réponse ci-dessus. Mais j'ai obtenu l'erreur NoReverseMatch found.

J'ai pu le résoudre par cette méthode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X