Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

flask {{url_for }} dans du javascript, un moyen?

+4 votes

pour un projet, j'utilise un peu de bootstrap-datepicker, alimenté par flask.
tout allait a peu près correctement jusqu’à ce que j'ai besoin de faire un peu de js.
je dois récupérer la date selectionnée pour former une url, et ensuite choper des data.
sauf que la, j'ai une variable js a passer a mon {{ url_for }}, et ca coince.

voila le bout de code qui merdoie, le {{ url_for }} en particulier.

    $(document).ready(function() {
        $('#choose_date').datepicker({
            format: "dd/mm/yyyy",
            weekStart: 1,
            language: "fr",
            daysOfWeekHighlighted: "0",
            autoclose: true
        })
        .on('changeDate', function(e) {
                            var date_req=e.format('yyyy-mm-dd')
                            //un alert de test, date comme y faut
                            alert(date_req);
                            // on repasse (enfin) en python, mais j'ai oublie mon date_req
                            //sur la commode. dommage
                            // j'atterris donc sur /api/v1.0/programme/date/
                            // au lieu de /api/v1.0/programme/date/2016-03-18
                            $("#test").load("{{ url_for('api.api_programme_date', date_requested=date_req) }}");
                            });
        });

donc, quelqu'un a il une astuce de vieux sioux rusé pour choper mon paramètre JS, ou a défaut un contournement?

demandé 18-Mar-2016 par ashgan (698 points)

1 Réponse

+3 votes
 
Meilleure réponse
répondu 18-Mar-2016 par foxmask (2,874 points)
sélectionné 19-Mar-2016 par ashgan

toi vieux sioux sage et rusé!

ça me fait 2 requêtes a cause du changeDate et surtout du comportement du datepicker qui efface puis colle une date, mais pas de problème pour ce coup ci.

comme dans la doc, tout bete:

<head>
    {{ JSGlue.include() }}
</head>
< script >
    $(document).ready(function() {
        $('#choose_date').datepicker({
            format: "dd/mm/yyyy",
            weekStart: 1,
            language: "fr",
            daysOfWeekHighlighted: "0",
            autoclose: true
        })
        .on('changeDate', function(e) {
                            var date_req=e.format('yyyy-mm-dd')
                           ("#test").load(Flask.url_for("api.api_programme_date", {"date_requested": date_req}));
                            });
        });
< /script >

sauf que maintenant c'est la merde, ça me condamne a finir la partie JS.

Désolé :-) MDR

...