IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Request.POST.get sur des valeurs d'une table html [Python 3.X]


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Septembre 2021
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2021
    Messages : 55
    Par défaut Request.POST.get sur des valeurs d'une table html
    Bonjour à tous,


    J'ai un problème de récupération de données dans le Views depuis un template Html. J'ai un tableau qui se génère dans une balise <form> de mon template puis, par un bouton (Submit), j'aimerai récupérer certaines valeurs par leur name.

    Le problème est qu'on ne peux récupérer les données d'un <form> dans le views de Django que si elles sont dans des <input>, et pour moi elles se trouvent dans des <td>.

    J'ai essayé d'ajouter dans chaque cellule un <input type="hidden" value=MaValeur> mais le tableau étant trop grand j'ai trop de champs dans mon form donc une erreur.
    Je peux essayer d'augmenter la variable DATA_UPLOAD_MAX_NUMBER_FIELDSdans Settings.py mais comme ce sont des tableaux à taille variable et avec beaucoup de lignes en général je crains d'impacter les performances en passant cette variable à par exemple 2 millions...


    Est ce que quelqu'un aurai une idée de comment je pourrais, soit récupérer les valeurs du tableau, soit modifier ma méthode pour que ce soit faisable ?


    Merci d'avance !

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour
    Citation Envoyé par ptrs32 Voir le message
    un tableau qui se génère dans une balise <form> de mon template puis, par un bouton (Submit), j'aimerai récupérer certaines valeurs par leur name.
    ..
    avec beaucoup de lignes en général je crains d'impacter les performances en passant cette variable à par exemple 2 millions...
    En fait je ne comprends pas pourquoi tu désires passer tout ton tableau. Il a été généré en html par une requete (sql ou autre), il te suffit donc de passer dans ton form les mêmes paramètres que la page d'affichage du tableau pour faire la même requete (et donc retrouver les mêmes datas à la réception du post).
    Si le tableau est dynamique (javascript..ajax) avec par exemple un filtre de l'utilisateur web, il te suffit de passer dans un ou plusieurs input hidden le(s) filtre(s) "dynamique" (avec javascript)

  3. #3
    Membre confirmé
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Septembre 2021
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2021
    Messages : 55
    Par défaut
    Citation Envoyé par papajoker Voir le message
    bonjour

    En fait je ne comprends pas pourquoi tu désires passer tout ton tableau. Il a été généré en html par une requete (sql ou autre), il te suffit donc de passer dans ton form les mêmes paramètres que la page d'affichage du tableau pour faire la même requete (et donc retrouver les mêmes datas à la réception du post).
    Si le tableau est dynamique (javascript..ajax) avec par exemple un filtre de l'utilisateur web, il te suffit de passer dans un ou plusieurs input hidden le(s) filtre(s) "dynamique" (avec javascript)
    Merci pour ta réponse.
    Ce que je n'ai pas dit, désolé pour ça, c'est que pour chaque ligne de mon tableau html j'ai une checkbox qui est ajouté, ce qui permet à l'utilisateur de choisir les lignes que je veux ensuite récupérer dans mon view.
    Par un request.POST.getlist('checkbox') je récupère le name des box cochées ce qui me permet de deviner le name des autres cellules de la ligne et que j'aimerai récupérer.

    Le input hidden génère trop de champs dans mon formulaire (env. 10/ligne pour plus de 10 000 lignes) ce qui crée une erreur.
    Mais Peut-être que je n'ai pas compris ta solution ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Bioinformaticien
    Inscrit en
    Septembre 2021
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Bioinformaticien
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2021
    Messages : 55
    Par défaut
    J'ai fini par résoudre mon problème en générant au click sur une checkbox, via une fonction Javascript et la méthode innerHtml, les balises input cachées sur chaque cellule de ma ligne cochée.
    Ce qui me permet bien de les récupérer ensuite dans le view de Django.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Salut,

    Une requête AJAX permettrait de vous passer de la logique FORM pour expédier un tableau JSON construit à partir du contenu de la page HTML.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/11/2017, 23h38
  2. CountIfs sur des valeurs d'une autre feuille
    Par darki24 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2015, 16h16
  3. Condition sur des valeurs d'une matrice
    Par Cjordan dans le forum MATLAB
    Réponses: 6
    Dernier message: 11/02/2011, 11h48
  4. Réponses: 2
    Dernier message: 17/05/2006, 21h35
  5. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo