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 :

Formulaire avec autocomplétion lié à un modèle


Sujet :

Django Python

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1
    Par défaut Formulaire avec autocomplétion lié à un modèle
    Bonjour, j'utilise depuis plusieurs années Python (j'utilise actuellement la version 3.7) mais je suis débute sur le framework Django (version 2.11).

    Je me suis lancé dans le projet de créer un site web avec ce framework pour une association de mon école dans le but de sécuriser nos données et améliorer notre façon de procéder (nous avons actuellement un logiciel écrit en VBA assez capricieux et surtout disgracieux visuellement.)

    Jusqu'ici tout va bien, j'arrive à coder le peu de fonctionnalités dont nous avons besoin : je veux simplement développer un site qui ne sera (a priori) jamais déployé et qui enregistre des transactions (achat d'un produit, ajout d'argent sur un compte fictif interne à notre asso).

    Seulement voilà, une des fonctionnalités très utile que je voudrais mettre en place est une barre de recherche avec autocomplétion qui puisse nous permettre d'accéder plus rapidement à l'interface d'un client (qui n'est pas réellement un client puisque le site fonctionnera en local). Cela fait plusieurs jours que je bataille avec des recherches Google en tout genre pour arriver à mes fins, sans succès (la plupart des tutos concernant ce sujet utilise PHP).

    Le modèle sur lequel je veux baser l'autocomplétion est le modèle Klient (voici mon fichier models.py) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    from django.db import models
    import pandas as pd
    from django.core.files import File
    import datetime
     
    class Klient(models.Model):
        id_klient = models.AutoField(primary_key=True)
        nom_klient = models.CharField(max_length=42)
        prenom_klient = models.CharField(max_length=42)
        argent = models.FloatField(default=0.0)
        date = models.DateTimeField(auto_now_add=True, auto_now=False, 
                                    verbose_name="Date ajout")
        associations=models.TextField(null=True)
        historique_transactions=models.FileField(default='/Users/antoinepradier/Desktop/site/site_kfet/site_K/historique/historique_transactions.xlsx')
     
        def __str__(self):
            return(self.nom_klient+' '+self.prenom_klient)
     
        def achat_article(self,id_art):
            article=Article.objects.get(id_article=id_art)
            if 'Kfet' in self.associations:
                self.argent-=(article.prix)*(0.7)
            else:
                self.argent-=article.prix
            self.save()
            path=('/Users/antoinepradier/Desktop/site/site_kfet/site_K/historique/historique_transactions.xlsx')
            data=pd.read_excel(path)
            date_now=str(datetime.datetime.now())[:16]
            l=[{'nom':self.nom_klient,'prenom':self.prenom_klient,'date':date_now,'article':article.nom_article}]
            data2=pd.DataFrame(l)
            to_concat=[data2,data]
            data_new=pd.concat(to_concat)
            data_new.to_excel(path,sheet_name='Feuil1')
     
     
        def metdelathune(self,montant):
            self.argent+=float(montant)
            self.save()
            path=('/Users/antoinepradier/Desktop/site/site_kfet/site_K/historique/historique_ajout_thune.xlsx')
            data=pd.read_excel(path)
            date_now=str(datetime.datetime.now())[:16]
            l=[{'nom':self.nom_klient,'prenom':self.prenom_klient,'date':date_now,'montant':montant}]
            data2=pd.DataFrame(l)
            to_concat=[data2,data]
            data_new=pd.concat(to_concat)
            data_new.to_excel(path,sheet_name='Feuil1')
     
     
    class Article(models.Model):
        id_article = models.PositiveIntegerField(primary_key=True)
        nom_article = models.CharField(max_length=42)
        prix = models.FloatField()
     
        def __str__(self):
            return(self.nom_article)
    Ce que je veux faire est simplement une page d'accueil ne contenant que la barre de recherche avec autocomplétion qui, une fois le client trouvé, redirigera vers une page correspondant à l'interface du client (contenant ses infos personnelles : nom, prénom, argent disponible, date de création, associations) et où on peut effectuer des actions (acheter des produits ou remettre de l'argent). Je reprécise que ces actions seront effectuées par nous-même et non par le client : il n'y aura pas d'interface utilisateur et que j'ai déjà codé cette partie du site sans problème.

    Voilà tout, en espérant que quelqu'un puisse m'aider à pallier ce problème pour que je puisse m'attaquer au design du site .

    Merci d'avance.

    Antoine

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 753
    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 753
    Par défaut
    Salut,

    Citation Envoyé par ant84430 Voir le message
    Voilà tout, en espérant que quelqu'un puisse m'aider à pallier ce problème pour que je puisse m'attaquer au design du site .
    C'est une fonctionnalité qui sera essentiellement réalisée côté client avec du Javascript à qui le serveur Web (Django) fournit des informations pour la réaliser.
    Donc quelque part, vous êtes dans le mauvais forum.
    Si vous faites des recherches sur Internet avec les mots clefs javascript autocompletion, vous allez trouver des tas de solutions: à vous de choisir celle qui répond le mieux à vos exigences. Après, il faudra l'adapter/l'interfacer avec vos modèles Django.

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

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Hello Ant,

    Te donne un mot clé à rechercher...

    from dal import autocomplete
    Ne serait-ce pas dans ce genre de chose ?

Discussions similaires

  1. Vérification de formulaire avec regexp
    Par Shadow aok dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/08/2007, 11h57
  2. Réponses: 7
    Dernier message: 19/10/2004, 16h12
  3. Créer un formulaire avec VBA ?
    Par Jean Bonnisme dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/10/2004, 10h40
  4. Réponses: 10
    Dernier message: 10/06/2004, 16h20
  5. Gestion de formulaire avec xml et sans serveur ?
    Par meliane dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 05/05/2004, 19h57

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