Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Django / Vos questions

    20 mars 2018 à 11:34:34

    Bonjour,

    J'ai redéfini le chemin vers mon projet. Depuis, impossible de redémarrer l'application, en particulier, il ne trouve plus mySQLdb.

    Que dois-je adapter dans les fichiers pour que le nouveau chemin sois pris en compte ?

    Merci

    Thierry

    PS Félicitation et merci pour votre beau travail de documentation et de pédagogie

    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2018 à 19:17:57

      Bonjour, je suis au 3e chapitre de la 3e partie cours de Django « ajouter des gabarits ».
      Tout fonctionne correctement… jusqu'au namespace,
      dans le fichier 'url.py', se trouve la ligne :
      url(r'^store/', include('store.urls')),
      il nous est proposé de la transformer en :
      url(r'^store/', include('store.urls', namespace='store')),
      or de manière systématique, lorsque je modifie cette ligne, je fais planter mon serveur…
      rien à faire, il n'en veut pas !
      Auriez-vous un conseil ?
      Merci d'avance.

      Je corrige ici, afin d'éviter un post supplémentaire, en effet après avoir épluché la documentation de Django, j'ai trouvé que dans le fichier « store/url.py » il fallait ajouter la ligne « app_name = 'store' » !
      Toutes mes excuses pour ne pas avoir édité mon post plus rapidement.
      Merci beaucoup @AbcSxyZ pour votre réponse.
      Bonne continuation à tous.

      -
      Edité par letengu 15 mai 2018 à 15:39:49

      • Partager sur Facebook
      • Partager sur Twitter
        14 mai 2018 à 21:10:12

        dans la fichier de ton urls.py d'une application

        app_name = 'Mon App'
        urlpatterns = [
            path('url1', views.maVue, name="myName"),
            ...]



        • Partager sur Facebook
        • Partager sur Twitter
        Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
          27 mai 2018 à 5:50:53

          Bonjour, voila je voulais savoir s'il y avait un moyen à partir d'une url à variables de mettre le chemin vers le template en variable?

          (J'ai essayé de le faire en ajoutant des accolades mais ca ne fonctionne pas..)

          def afficher(request, slug_jeu, slug_article) :
              return render(request, '{slug_jeu}/{slug_article}.html')

          Merci de votre attention.



          -
          Edité par CasadesusHortense 27 mai 2018 à 6:27:57

          • Partager sur Facebook
          • Partager sur Twitter
            27 mai 2018 à 13:53:23

            Tu utilises ton langage de gabarit (dans un fichier HTML) avec ton script python (fichier .py).

            Formatte ta chaîne normalement, avec la fonction format ou la concaténation.

            (Pas <\> sur mobile)

            --> file = "{}/{}.html".format(slug_jeu, slug_article)

            Ou

            --> slug_jeu + "/" + slug_article + ".html"

            -
            Edité par AbcSxyZ 27 mai 2018 à 13:56:08

            • Partager sur Facebook
            • Partager sur Twitter
            Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
              28 mai 2018 à 17:19:34

              Bonjour Mesdames, Messieurs.
              Je suis en train de tenter de me familiariser avec Django, je me heurte à une difficulté dans l'architecture d'un projet.
              Dans le cours d'OCR, un projet permet de réunir plusieurs applications… normal.
              Mais la page d'accueil du site se trouve dans l'application donnée en exemple. %-/
              Je dois avouer que cela me pose un problème.s'il y a 3 applications (par exemple) dans laquelle mettre la page accueil…
               j'ai du mal à comprendre cet aspect de Django.
              _project
                  _manage.py
                  _project
                  _application_alpha
                      _static
                      _templates
                          _application_alpha
                              ma_page_d_accueil_pour_tout_le_site.html
                              mes_pages__application_alpha.html
                      __init__.py
                      models.py
                      urls.py
                      views.py
                      etc…
                  _application_bravo
                      _static
                      _templates
                          _application_bravo
                             mes_pages__application_bravo.html
                      __init__.py
                      models.py
                      urls.py
                      views.py
                      etc…
              Quelqu'un peut peut-être m'aider à comprendre la logique.
              En vous remerciant par avance.
              Une autre petite question : personne ne suit ce cours, en ce moment ?
              Parce que j'ai rendu mon activité il y a environ 2 semaines…
              J'ai terminé le cours depuis, et aucune note sur mon activité…
              Étrange, étrange… 
              • Partager sur Facebook
              • Partager sur Twitter
                29 mai 2018 à 0:15:52

                Salut à toi letengu,

                il y a bien un moyen d'avoir ton template (code html) de ta page d'accueil dans une application unique et la charger depuis les autres applications. Possiblement tu as déjà vu cette balise.

                {% extends "MyApp/MyTemplate.html" %}

                Clairement je pense que ça répond à ton premier problème si tu arrives à utiliser cette balise pour ta situation.

                "Personne ne suite ce cours ?", j'en sais rien. Après sur ce point si j'avais un conseil, à titre perso j'ai suivi la moitié de ce cours pour Django d'OC, je sais qu'il y a en un autre et celui que tu suis. Je ne peux rien dire sur ce dernier, mais en tout cas celui que j'ai suivi, je pense que si tu n'as pas de connaissance en HTML/CSS/boostrap, au moins quelques notions, ce qui a été mon cas, je trouve que c'est un peu la galère. Tu utilises des choses plus avancées sur certains points, qui demandent d'autres compétences en info et personnelement, ton site je trouve que tu comprends pas tout ce qui se passe. Beaucoup est déjà rédigé.

                Pour le coup, peut être que l'autre tutoriel vaut le coup, mais go sur le site officiel de Django et suivre directement les tutoriels. Une bonne partie est accessible en francais, même de la docu en général. Tu n'aura pas un beau site à la fin de ton tutoriel si tu n'as pas des compétences justement en mise en page de ton code HTML (Css/javascript, boostrap étant un framework CSS/javascript si tu ne connais pas), mais tu comprendras les mécanismes principaux de django, comment tu fais tes modèles, tes vues et tes templates. Point. Pas de superflu autour, du code html un peu tu seras obligés, mais que du python autrement.

                Toujours regarder la docu officiel et les tutos, parfois c'est ultra prise de tête, parfois beaucoup moins, et je pense que Django il y a pas mal de travail qui est fait à ce niveau là pour rentre l'outil le plus accessible, pour différentes langues. Franchement, OC vous pouvez sauter si des tutoriels sur les framewoks existent, des mecs font un travail énorme pour créer tout ces frameworks, mais si la docu n'est pas compréhensible, c'est un handicap tout aussi énorme pour les dévs, leur projet ne peux pas se diffuser et être utilisés par d'autres. OC ou d'autres sites peuvent venir en appui, mais autant, si possible, s’abreuver à la source. Tu supprimes du superflu, et tu as accès à du détail plus profond si tu cherches dans la docu.

                Mais franchement ce que je dis je l'applique parfois aux libraires/script que tu récupère depuis pip ou github, si c'est quelqu'un qui a produit une lib et qui est destiné à être utilisé par d'autres (requests me vient en tête là), tu as de forte proba que tu as des tutoriel ou des conneries qui te mettent la main à la patte.

                J'ai peut être un peu divagué du "Personne ne suit ce cours, en ce moment ?", mais conclusion c'est que ... je vais aller me fumer un pétard.
                • Partager sur Facebook
                • Partager sur Twitter
                Pour réussir dans la vie, je te conseille de te piquer à l'héro jusqu'à en crever.
                  29 mai 2018 à 0:24:15

                  Merci beaucoup AbcSxyZ, ca fonctionne parfaitement

                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 juin 2018 à 0:58:40

                    Bonjour, alors voila, j'ai deux vues qui fonctionnent très bien : commentaire et article(s).

                    Je voulais faire des pages d'articles et comme dans un blog que les commentaires s'affichent en bas de chaque page (avec un formulaire pour en ecrire un).

                    Alors voila j'ai la vue (dans views.py)avec son routage url et son template.

                    def comment(request) :
                    
                    	form = CommentaireForm(request.POST or None)
                    
                    	if form.is_valid(): 
                    
                    		pseudo = form.cleaned_data['pseudo']
                    		sujet = form.cleaned_data['sujet']
                    		commentaire = form.cleaned_data['commentaire']
                    		
                    		envoi = True
                    		form.save()
                    
                    
                    	return render(request, 'comment.html', locals(), )

                    Sachant que la definition de ma vue est

                    def redirectTemplate(request, slug_jeu, slug_article) :
                    	slug = slug_jeu + "/" + slug_article + ".html"
                    
                    	return render(request, 'redirectTemplate.html',  
                    						{'slug' : slug } )


                    (elle renvoie vers un template qui a pour seul contenu : {% extends slug %}

                    Mais je ne sais pas comment integrer les commentaires dans les vues des articles.

                    Savez vous comment faire?

                    -
                    Edité par nh7 3 juin 2018 à 1:20:42

                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 juin 2018 à 10:03:37

                      Bonjour à tous,

                      Voilà j'en suis à la partie 2 Activité du cours sur Django. Lorsque je télécharge le fichier ZIP qui est joint au cours, je me retrouve avec pleins d'erreur : les bibliothèques ne sont pas bonnes pour les urls, il n'y a pas les templates ...

                      Alors les premiers points j'ai réussi à les contourner, par contre lorsque j'essaie d'accéder à l'administration, il met :

                      OperationalError at /admin/
                      
                      no such table: django_session
                      
                      Request Method: 	GET
                      Request URL: 	http://localhost:8000/admin/
                      Django Version: 	2.0
                      Exception Type: 	OperationalError
                      Exception Value: 	
                      
                      no such table: django_session
                      
                      Exception Location: 	/usr/local/lib/python3.5/dist-packages/django/db/backends/sqlite3/base.py in execute, line 303
                      Python Executable: 	/usr/bin/python3
                      Python Version: 	3.5.2
                      Python Path: 	
                      
                      ['/home/acropose/Programmation/crepes',
                       '/usr/local/lib/python3.5/dist-packages/pip-10.0.1-py3.5.egg',
                       '/usr/lib/python35.zip',
                       '/usr/lib/python3.5',
                       '/usr/lib/python3.5/plat-x86_64-linux-gnu',
                       '/usr/lib/python3.5/lib-dynload',
                       '/usr/local/lib/python3.5/dist-packages',
                       '/usr/lib/python3/dist-packages']
                      
                      Server time: 	mer, 27 Jui 2018 07:57:39 +0000

                      Je me dit que c'est parce que je n'ai pas créer de super utilisateur, alors j’exécute la commande et j'ai un joli : 

                      django.db.utils.OperationalError: no such table: auth_user
                      

                      Et je n'ai aucune idée de comment créer ou configurer ces tables.

                      Auriez-vous une idée ?

                      Merci d'avance à tous


                      -
                      Edité par VincentLabarre01 27 juin 2018 à 10:22:54

                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 juin 2018 à 11:43:25

                        Bonjour à tous,

                        Petit retour rapide. Je suis un peu stupide j'avais oublié d'initialiser ma BDD avec la commande de migration ....

                        Désolé pour le précédent message :)

                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 juin 2018 à 22:24:40

                          Bonjour, je suis bloqué vers le début. Lorsque j'ai fait une première fois manage.py runserver ça fonctionnait lorsque j'allait sur http://localhost:8000 mais maintenant que j'ai suivi les diverses autres étapes, je n'arrive plus à le refaire. En effet dès que je fait manage.py runserver ça me met cette phrase d'erreur: "ModuleNotFoundError: No module named 'blog' " et je ne peux donc pas accéder à http://localhost:8000/accueil maintenant...

                          Merci de m'aider!

                          ##C'est bon j'ai trouvé la solution à mon problème, il fallait que le dossier 'blog' se trouve dans le dossier crepes_bretonnes où se trouve également manage.py. En gros mon erreur a été de mettre 'blog' en tant que dossier frère de crepes_bretonnes et non pas en tant que dossier fils...

                          -
                          Edité par UlysseVirginet 30 juin 2018 à 12:17:13

                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 juillet 2018 à 17:19:33

                            Bonjour

                            Dans la partie "Des formulaires à partir de modèles". j'ai une erreur au moment de la validate  de la formulaire au  niveau:

                            >>> from blog.models import Article, Categorie
                            >>> from blog.forms import ArticleForm
                            >>> donnees = {
                            ... 'titre': "Les crêpes c'est trop bon",
                            ... 'slug': "les-crepes-cest-trop-bon",
                            ... 'auteur': "Maxime",
                            ... 'contenu': "Vous saviez que les crêpes bretonnes c'est trop bon ? La pêche c'est nul à côté.",
                            ... 'categorie': Categorie.objects.all()[0].id # Nous prenons l'identifiant de la première catégorie disponible
                            ... }
                            >>> form = ArticleForm(donnees)
                            >>> Article.objects.all()
                            []

                            >>> form.save()
                            Traceback (most recent call last):
                              File "<console>", line 1, in <module>
                              File "/usr/lib/python2.7/dist-packages/django/forms/models.py", line 463, in save
                                'created' if self.instance._state.adding else 'changed',
                            ValueError: The Article could not be created because the data didn't validate.

                            ça vous parle

                            • Partager sur Facebook
                            • Partager sur Twitter
                              12 juillet 2018 à 19:56:08

                              Bonjour, une petite erreur à signaler dans le cours, vous avez écrit CASACADE au lieu de CASCADE :

                              https://openclassrooms.com/fr/courses/1871271-developpez-votre-site-web-avec-le-framework-django/1872229-les-modeles#/id/r-4770175

                              Cordialement

                              Ssx`z a écrit:

                              Bonjour à tous et bienvenue à tous ceux qui participent au cours "Développez votre site web avec le framework Django" !

                              L'adresse du cours : http://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-django

                              Les exercices de la première partie de ce cours seront ouverts dès le 24 novembre. Je vous invite à poster vos questions ici. N'hésitez pas à discuter entre vous et à vous entraider. Soyez vigilants et ne divulguez pas de solutions cependant.
                              Nous restons, Mathieu Xhonneux et moi-même, également à votre disposition en cas de difficultés sur les exercices ou sur un point du cours :)

                              À très bientôt !

                              -
                              Edité par Ssx`z 21 novembre 2014 à 18:29:56



                              • Partager sur Facebook
                              • Partager sur Twitter
                                29 juillet 2018 à 9:49:46

                                Bonjour, je suis en train de suivre le tuto pour django, j'en suis arrivé a l'exercice sur les commentaires ( je l'ai fait sur mon projet tout fonctionne bien). le seul hic c'est que je telecharge le projet fourni par openclassroom, il m'est impossible de l'init avec le manage.py makemigrations blog(j'utilise django 2.2 sous venv). je vous joins un screen de l'erreur. Ce qui vient a poser ma question serait possible que je vous envoi le projet dont j'ai fait mention plus haut afin d'etre quand meme corriger ? Bien cordialement à vous

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  30 juillet 2018 à 8:25:48

                                  Bonjour, depuis que je suis passé en "debug=False" mes fichiers "static" sont inaccessibles.

                                  J'ai essayé "./manage.py collectstatic" ==> no such file or directory

                                  Quelqu'un connait la manip ?

                                  EDIT : c'est bon en fait c'est expliqué plus loin :p

                                  -
                                  Edité par AlexMDG 30 juillet 2018 à 8:37:07

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    1 août 2018 à 16:59:57

                                    Bonjour,

                                    J'ai un problème concernant le TP d'un raccourci url.

                                    Le problème est que quand je remplis mon formulaire et l'envoi, le code de l'url n'est pas généré automatiquement.

                                    Voici les deux fonctions que j'ai déclaré dans le models.py

                                     def save(self, *args, **kwargs):
                                            
                                            if self.pk is None:
                                                self.regenerer(6)
                                                
                                            super (MiniURL, self).save(*args, **kwargs)
                                            
                                        def regenerer(self, nb_caracteres):
                                            
                                            caracteres = string.ascii_letters + string.digits
                                            aleatoire = [random.choice(caracteres) for _ in range (nb_caracteres)]
                                            
                                            self.code = ''.join(aleatoire)


                                    Lorsque, j'effectue le code suivant à partir de mon python shell.

                                    from mini_url.models import MiniURL
                                    new_url = MiniURL()
                                    new_url.url = "https://docs.djangoproject.com/fr/2.0/intro/reusable-apps/"
                                    new_url.save()

                                    J'ai une erreur de ce type :

                                    return Database.Cursor.execute(self, query, params)

                                    django.db.utils.IntegrityError: UNIQUE constraint failed: mini_url_miniurl.code_url


                                    -
                                    Edité par AdamaSorho 1 août 2018 à 17:21:53

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Toute fortune, tout succès débute par une idée !
                                      11 octobre 2018 à 6:38:40

                                      bonjour, je voudrais savoir comment prendre les données d'une formulaire en django et les envoyer aux base de données, en ce moment j'utilise mysql et wampserver

                                      merci

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        14 octobre 2018 à 11:42:21

                                        Petite remarque à propos du chapitre sur les Signaux/Middleware le code donné en exemple ne fonctionne pas totalement ( sur Django 2.1)

                                        Si d'autres personnes tombent sur ce cas, je préfère partager.

                                        Cela concerne le code suivant

                                        from django.db.models import F
                                        from models import Page
                                        
                                        
                                        def stats_middleware(get_response):
                                            def middleware(request):
                                                # Avant chaque exécution de la vue, on incrémente 
                                                # le nombre de page vues à chaque appel de vues
                                                try:
                                                    # Le compteur lié à la page est récupéré et incrémenté
                                                    p = Page.objects.get(url=request.path)  
                                                    p.nb_visites = F('nb_visites') + 1
                                                    p.save()
                                                except Page.DoesNotExist:
                                                    # Un nouveau compteur à 1 par défaut est créé
                                                    p = Page.objects.create(url=request.path)
                                        
                                                
                                                # Appel de la vue Django
                                                response = get_response(request)
                                                
                                                # Une fois la vue exécutée, on ajoute à la fin le nombre
                                                # de vues de la page 
                                                response.content += bytes(
                                                    "Cette page a été vue {0} fois.".format(p.nb_visites),
                                                    "utf8"
                                                )
                                                # Et on retourne le résultat
                                                return response
                                        
                                            return middleware

                                        L'initialisation de la page marche bien, mais l'incrémentation provoque l'affichage suivant:

                                        Cette page a été vue F(nb_visites) + Value(1) fois.

                                        Selon la documentation django sur l'utilisation de F :

                                        Pour accéder à la nouvelle valeur qui a été enregistrée de cette manière, l’objet doit être rechargé 
                                        reporter = Reporters.objects.get(pk=reporter.pk)
                                        # Or, more succinctly:
                                        reporter.refresh_from_db()

                                        L'ajout de la ligne suivante après la récupération de la réponse permet d'envoyer la bonne donnée

                                         p.refresh_from_db()






                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          18 octobre 2018 à 16:09:50

                                          bonjour, 

                                          j'ai un soucis a actualiser le serveur django. A chaque fois que je redemare le serveur  par la commande python manage.py runserver et que j'ouvre ma page j'ai tout le temps l'ancien views qui sort sur le navigateur meme si je l'ai change

                                          Merci.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            2 janvier 2019 à 16:51:47

                                            Bonjour, je suis bloqué au début du cours après la création du projet. Quand je lance la commande
                                            python manage.py runserver

                                            Je reçois le message d'erreur suivant :


                                            ModuleNotFoundError: No module named '_sqlite3'

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              2 janvier 2019 à 20:09:43

                                              Bonjour,

                                              est que t'a installer sqlite d'abord .

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                3 janvier 2019 à 11:04:42

                                                Bonjour,

                                                Il me semble qu'il y a quelques petites erreurs dans le projet de la partie 2 ? En tout cas pour moi impossible effectuer la commande python manage.py makemigrations. La première erreur lorsque je tente de le faire est __init__() missing 1 required positional argument: 'on_delete', une fois celle ci corrigée vient une erreur liée à l'import de patterns qui est utilisé dans le projet que l'on nous donne, puis un problème avec le nombre d'argument de la fonction include() ... J'ai pu constater que le projet fonctionnait avec la version 1.7 (j'ai la version 2.1.4), mes erreurs sont t-elles liées cela ? Qu'en pensez vous ?

                                                Merci ;)

                                                -
                                                Edité par SimonLembeye 3 janvier 2019 à 11:05:17

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  3 janvier 2019 à 14:08:20

                                                  Bonjour,

                                                  sqlite est censé être inclus avec Django

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    4 janvier 2019 à 22:37:40

                                                    bonjour, je suis le cours car j'ai un projet à faire en django. je dois faire un graphique sur mon site que me conseillez vous?
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      6 janvier 2019 à 16:14:35

                                                      Bonjour, si tu veux faire un site pas trop lourd utilise Flask et pour intégrer un graphique regarde la bibliothèque pygal

                                                      qui est simple d'utilisation.

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        13 janvier 2019 à 10:11:53

                                                        Essaie highcharts. Autre question, quelqu'un a déjà réussi à utiliser décemment un CAS ? Peut-il m'aider a comprendre ce qu'on fais et pourquoi on le fait ?
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          16 janvier 2019 à 16:43:16

                                                           J'ai la même erreur que Simon avec la même version 2.1.4. C'est bloquant pour faire l'exercice.


                                                          SimonLembeye a écrit:

                                                          Bonjour,

                                                          Il me semble qu'il y a quelques petites erreurs dans le projet de la partie 2 ? En tout cas pour moi impossible effectuer la commande python manage.py makemigrations. La première erreur lorsque je tente de le faire est __init__() missing 1 required positional argument: 'on_delete', une fois celle ci corrigée vient une erreur liée à l'import de patterns qui est utilisé dans le projet que l'on nous donne, puis un problème avec le nombre d'argument de la fonction include() ... J'ai pu constater que le projet fonctionnait avec la version 1.7 (j'ai la version 2.1.4), mes erreurs sont t-elles liées cela ? Qu'en pensez vous ?

                                                          Merci ;)

                                                          Edité par SimonLembeye 3 janvier 2019 à 11:05:17



                                                          -
                                                          Edité par RonC59 16 janvier 2019 à 16:45:00

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            26 janvier 2019 à 16:09:30

                                                            Bonjour à tous, je suis dans la partie deux avec la création des modèles et je cherche un outil de gestion de base de données sur mac et gratuit pour voir les modèles créé comme dans l'exercice, auriez vous des avis ?
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              26 janvier 2019 à 16:25:58

                                                              tu peux normalement les voir avec l'administration de django
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Exercices du cours Django / Vos questions

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              • Editeur
                                                              • Markdown