Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Django / Vos questions

    26 janvier 2019 à 17:05:26

    Ok merci de l'information, je ne savais pas ;)

    re-bonjour à tous, je tente détendre le modèle user avec le modèle profil, mais pour cette ligne : 

    user = models.OneToOneField(User)#La liaison OneToOne vers le modèle User cela me met l'erreur : 

    TypeError: __init__() missing 1 required positional argument: 'on_delete' que je n'arrive pas a comprendre. Est ce que quelqu'un pourrait m'éclairer s'il vous plait ? Merci de votre réponse 

    -
    Edité par BORRHOMEE 26 janvier 2019 à 20:46:06

    • Partager sur Facebook
    • Partager sur Twitter
      29 janvier 2019 à 17:34:57

      Est-ce que je me trompe mais le cours n'a pas été complètement mis à jour pour django 2.0

      L'activité de la partie 2" ne fonctionne pas. Et dans les vues génériques on parle de la fonction url qui n'est pas dans le cours précédemment (apparemment supprimer dans django 2 un équivalent à re_path ?)

      Pour continuer de suivre le cours correctement sans me perdre dans des "quêtes parallèles" pensez vous que je dois réinstaller un django 1.7 ?

      -
      Edité par RonC59 29 janvier 2019 à 17:38:40

      • Partager sur Facebook
      • Partager sur Twitter
        31 janvier 2019 à 14:49:03

        Bonjour RonC59,

        Je pense que tu as raison sur le problème de versionning de Django concernant ce TP (j'ai le même souci).

        Pour ton information : J'ai modifié les fichiers url.py (crepes/urls et blog/url) et je n'ai plus d'erreur au lancement du serveur ou sur l'instruction makemigrations...

        En conclusion je reste sur django 2 :)

        ... mais cela n'a pas suffit, j'ai donc créé une nouvelle appli "blog1"  dans le projet crepes, et j'ai recopié tous les fichiers du zip dans la nouvelle appli, et ça marche...

        from django.contrib import admin
        from django.urls import path, include,re_path

        urlpatterns = [
        #'',
        # Examples:
        # url(r'^$', 'crepes.views.home', name='home'),
        #rl(r'^$', views.home, name='home'),
        # url(r'^blog/', include('blog.urls')),
        # url(r'^admin/', include(admin.site.urls)),
        re_path(r'^blog/', include('blog.urls')),
        # path(r'^admin/', include(admin.site.urls)),
        re_path(r'^admin/', admin.site.urls)from django.urls import path,include,re_path
        from . import views

        urlpatterns = [
        #'blog.views',
        # url(r'^$', 'accueil', name='accueil'),
        #url(r'^(?P<slug>.+)$', 'lire_article', name='blog_lire'),
        re_path(r'^$', views.accueil, name='accueil'),
        re_path(r'^(?P<slug>.+)$', views.lire_article, name='blog_lire'),

        ]

        -
        Edité par CountryOne 31 janvier 2019 à 16:53:07

        • Partager sur Facebook
        • Partager sur Twitter
          7 février 2019 à 20:07:50

          Bonsoir à tous,

          Je fais le cours donc...et je suis bloqué au niveau de la création de formulaire à partir de modèle.

          1- L'exemple en shell ne passe pas au niveau de la validation...en fait, il manque apparemment la date...j'ai pu voir ça avec form.is_valid() puis form.errors

          2- Vous indiquez un rendu HTML après avoir présente le code...mais la route n'est pas défini et dans quel fichier est-ce que le code est à mettre ? Et comment est-on censé obtenir le rendu présenté ? quel chemin ?

          Merci d'avance pour la réponse.

          Cordialement

          -
          Edité par Dom2167 7 février 2019 à 21:17:55

          • Partager sur Facebook
          • Partager sur Twitter
          Dominique S.
            18 février 2019 à 19:24:43

            Bonjour,

            Merci CountryOne pour ta contribution.

            Toutefois je n'y arrive pas malgré ces changements.

            J'ai bien compris également que le blog fourni dans l'activité correspond à une ancienne version de Django et certaines fonctions sont obsolètes. J'ai apporté les modifications nécessaires, mais je bloque à un endroit avec toujours le même message d'erreur :

            Passing a 3-tuple to include() is not supported.

            Si quelqu'un a une idée.

            Merci d'avance.

            Vincent

            • Partager sur Facebook
            • Partager sur Twitter

            Vincent ERHART

            Enseignant / Formateur

              19 février 2019 à 16:27:30

              Bonjour,

              Je ne sais pas si cel

              • Partager sur Facebook
              • Partager sur Twitter
                19 février 2019 à 16:56:41

                Hmmmm ... quelle est donc cette réponse ?

                V

                • Partager sur Facebook
                • Partager sur Twitter

                Vincent ERHART

                Enseignant / Formateur

                  21 février 2019 à 17:29:22

                  Bonjour serait-il possible de creer un forum django ? ou devons nous poster dans le forum python ?

                  Car a priori, ici on pose des questions sur le cours (que je suis en train de suivre), mais ma question concerne un projet personnel.

                  Au cas ou,

                  En python ceci fonctionne :

                  import couchdb
                  
                  couch = couchdb.Server('http://admin:motdepass@localhost:5984/')
                  db = couch['_users']
                  for id in db:
                      if id[0] != '_': //juste car la premiere entree ne m'interesse pas et qu'elle commence par '_'
                          print (db[id]['name'])

                  et m'affiche la liste des utilisateurs de mon projet perso.

                  Dans ma view, j'ai mis ca :

                  def home(request):
                      couch = couchdb.Server('http://admin:motdepass@localhost:5984/')
                      db = couch['_users']
                      return render(request, 'blog/home.html', locals())
                  
                  

                  et dans mon template ceci (qui ne fonctionne pas) :

                  <p> database = {{db}} </p>
                  
                  <ul>
                    {% for id in db %}
                    {% if id != "_design/_auth" %}
                        <li>{{ db[id]['name'] }}</li>
                    {% endif %}
                    {% endfor %}
                  </ul>



                  Ceci fonctionne par contre :

                  <p> database = {{db}} </p>
                  
                  <ul>
                    {% for id in db %}
                    <li>{{ id }}</li> 
                    {% endfor %}
                  </ul>



                  Donc je comprends bien que mon "if" est mal ecrit ou ne fonctionne pas
                  et/ou

                  db[id]['name'] pose probleme.

                  Pourriez vous m'orienter ?

                  Cordialement

                  Merci





                  -
                  Edité par BobbyLa Courgette 21 février 2019 à 18:54:14

                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 février 2019 à 21:25:51

                    Je crois pas que django lise les index en effet mais je suis pas certain, d'autre me confirmerons peut-être

                    -
                    Edité par Coliculus 12 avril 2019 à 22:21:57

                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 février 2019 à 20:42:29

                      Bonsoir. Svp comment réalisé en python un package qui implémente les différentes méthodes de tri( tri par insertion, tri par sélection, tri par bulle, tri par fusion, tri rapide etc...)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 mars 2019 à 15:26:21

                        Bonjour les Zeros,

                        je viens vers vous car je suis bloqué au niveau du cours de Django de Maxime LORANT et Mathieu XHONNEUX. Ces erreurs suivantes apparaissent quand j'essaye d'importer la classe "Article", je me trouve dans le chapitre sur "La gestion des fichiers" et tout marchait auparavant même les imports de "Article", "Categorie" et autres; je suis a dispo pour plus d'infos:

                        >>> from models import Article 

                        Traceback (most recent call last):

                          File "<stdin>", line 1, in <module>

                          File "/home/golo/Desktop/coursPython/Django/Projets/crepes_bretonnes/blog/models.py", line 7, in <module>

                            class Article(models.Model):

                          File "/usr/local/lib/python3.5/dist-packages/django/db/models/base.py", line 100, in __new__

                            app_config = apps.get_containing_app_config(module)

                          File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 244, in get_containing_app_config

                            self.check_apps_ready()

                          File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 127, in check_apps_ready

                            raise AppRegistryNotReady("Apps aren't loaded yet.")

                        django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 avril 2019 à 14:47:01

                          creation d'un projet django impossible  : manque pitz !

                          - versions -

                          C:\WINDOWS\system32>python
                          Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] on win32
                          Type "help", "copyright", "credits" or "license" for more information.
                          >>> import django
                          >>> django.get_version()
                          '2.1.7'
                          >>> quit()

                          - erreur django- admin

                          C:\Users\mclegear\django_essai>django-admin startproject histo_django
                          Traceback (most recent call last):
                            File "C:\Users\mclegear\Python37-32\Scripts\django-admin-script.py", line 6, in <module>
                              from pkg_resources import load_entry_point
                            File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 3126, in <module>
                              @_call_aside
                            File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 3110, in _call_aside
                              f(*args, **kwargs)
                            File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 3139, in _initialize_master_working_set
                              working_set = WorkingSet._build_master()
                            File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 581, in _build_master
                              ws.require(__requires__)
                            File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 898, in require
                              needed = self.resolve(parse_requirements(requirements))
                            File "C:\Users\mclegear\Python37-32\lib\site-packages\pkg_resources\__init__.py", line 784, in resolve
                              raise DistributionNotFound(req, requirers)
                          pkg_resources.DistributionNotFound: The 'pytz' distribution was not found and is required by Django

                          -

                          Que dois-je faire ? Merci

                          • Partager sur Facebook
                          • Partager sur Twitter
                            12 avril 2019 à 1:02:37

                            Bonjour!

                            j'ai un problème après avoir correctement crée mes models, la commande "manage.py makemigrations" me renvoie comme résultat "No changes detected"

                            et malgré toute les modification du fichier models.py.

                            merci d'avance!.

                            -
                            Edité par adosndombasintobo 12 avril 2019 à 2:28:44

                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 avril 2019 à 1:50:21

                              Bonjour à tous,

                              J'aimerai avoir votre avis sur le cms Wagtail par rapport à Django-cms. j'ai l'impression qu'il y a plus de tutoriels avec Django-cms mais le backend de Wagtrail me semble plus propre... J'ai vraiment du mal à me décider sur lequel je vais utiliser pour travailler.

                              Merci pour votre aide !

                              nb: Pouvez-vous créer un forum sur Django ?

                              • Partager sur Facebook
                              • Partager sur Twitter
                                29 avril 2019 à 9:02:04

                                Bonjour je suis débutant sur le framework Django et je rencontre des difficultés dans l'affichage d'un hello word! En fait dans les tutos que j'ai suivi, dans leur urls.py: urlpatterns = [

                                url(r'^admin/', admin.site.urls),
                                

                                ] Or chez moi ça s'affiche plutôt avec les path au niveau de url

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 mai 2019 à 11:53:40

                                  Je ne suis pas un pro en django mais j'ai fais le tuto en gros, le cours est actualisé en django 2.X pendant que les activités sont en 1.7. Par conséquent, quand tu fais les activités, ne reprend pas le code source donné mais fais le toi même en créant un nouveau projet et une nouvelle app.

                                  Bon courage!

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  A vaincre sans péril, on triomphe sans gloire!

                                    6 mai 2019 à 23:28:42

                                    Bonjour à tous, 

                                    Une petite question concernant les QuerySet. Dans le cours il y a cet exemple, avec les models Categorie et Article 

                                    class Categorie(models.Model):
                                        nom = models.CharField(max_length=30)
                                    
                                        def __str__(self):
                                            return self.nom
                                    class Article(models.Model):
                                        titre = models.CharField(max_length=100)
                                        auteur = models.CharField(max_length=42)
                                        contenu = models.TextField(null=True)
                                        date = models.DateTimeField(default=timezone.now, 
                                                                    verbose_name="Date de parution")
                                        categorie = models.ForeignKey('Categorie', on_delete=models.CASCADE)
                                        
                                        class Meta:
                                            ordering = ['date']
                                            
                                        def __str__(self):
                                            return self.titre

                                    Du coup je me demandais, quand je fais une recherche sur une catégorie, dans mon résultat je peux accéder aux objets Articles qui sont liés à ma catégorie ? 

                                    findCategorie = Categorie.objects.filter(id > 1)
                                    
                                    findCategorie[0].article ??? Est-ce que je retrouve l'ensemble des articles liées à ma catégorie 0? 





                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      14 mai 2019 à 11:51:26

                                      Essaye ;)
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      A vaincre sans péril, on triomphe sans gloire!

                                        26 mai 2019 à 10:40:46

                                        Message supprimé, je me suis trompé de forum

                                        -
                                        Edité par jers38 26 mai 2019 à 12:06:14

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          7 juin 2019 à 11:17:49

                                          Je me suis mal exprimé sur ma première question. Bien évidemment j'ai essayé et je n'ai pas réussi :D

                                          class Categorie(models.Model):
                                              nom = models.CharField(max_length=30)
                                          
                                              def __str__(self):
                                                  return self.nom
                                          class Article(models.Model):
                                              titre = models.CharField(max_length=100)
                                              auteur = models.CharField(max_length=42)
                                              contenu = models.TextField(null=True)
                                              date = models.DateTimeField(default=timezone.now, 
                                                                          verbose_name="Date de parution")
                                              categorie = models.ForeignKey('Categorie', on_delete=models.CASCADE)
                                              
                                              class Meta:
                                                  ordering = ['date']
                                                  
                                              def __str__(self):
                                                  return self.titre

                                          Comment puis-je récupérer l'ensemble les articles liés à ma catégorie dans ma variable findCategorie ? 

                                          findCategorie = Categorie.objects.filter(id > 1)




                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            13 juin 2019 à 19:08:05

                                            Bonjour  a tous je suis bloquer sur  le projet blog du parti 2
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              14 juin 2019 à 23:02:16

                                              Bonjour, mon site comporte une bibliotheque de programmes réportoriés dans un tableau, avec une notice qui s'ouvre lors du clic sur l'un des programmes. La page de la notice est censé s'adapter en fonction du programme sur lequel on clique. Mais, une erreur apparaît, et je ne parvient ni à la comprendre ni la résoudre.

                                              Pouvez-vous m'aider ?

                                              L'erreur :

                                              Internal Server Error: /bibliotheque/notice/1
                                              Traceback (most recent call last):
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
                                                  response = get_response(request)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
                                                  response = self.process_exception_by_middleware(e, request)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
                                                  response = wrapped_callback(request, *callback_args, **callback_kwargs)
                                                File "D:\Users\Robin\Documents\programmation\RepertoireGit\SimpleTrainer\bibliotheque\views.py", line 19, in notice
                                                  return render (request, 'bibliotheque/notice.html', {'last_five' : last_five, 'program' : program})
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\shortcuts.py", line 36, in render
                                                  content = loader.render_to_string(template_name, context, request, using=using)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\loader.py", line 62, in render_to_string
                                                  return template.render(context, request)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\backends\django.py", line 61, in render
                                                  return self.template.render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 171, in render
                                                  return self._render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\test\utils.py", line 96, in instrumented_test_render
                                                  return self.nodelist.render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 937, in render
                                                  bit = node.render_annotated(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 904, in render_annotated
                                                  return self.render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\loader_tags.py", line 150, in render
                                                  return compiled_parent._render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\test\utils.py", line 96, in instrumented_test_render
                                                  return self.nodelist.render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 937, in render
                                                  bit = node.render_annotated(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 904, in render_annotated
                                                  return self.render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\loader_tags.py", line 62, in render
                                                  result = block.nodelist.render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 937, in render
                                                  bit = node.render_annotated(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\base.py", line 904, in render_annotated
                                                  return self.render(context)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\template\defaulttags.py", line 442, in render
                                                  url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\urls\base.py", line 90, in reverse
                                                  return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
                                                File "D:\Users\Robin\Documents\programmation\SimpleTrainer\environnement_django\lib\site-packages\django\urls\resolvers.py", line 622, in _reverse_with_prefix
                                                  raise NoReverseMatch(msg)
                                              django.urls.exceptions.NoReverseMatch: Reverse for 'notice' with no arguments not found. 1 pattern(s) tried: ['bibliotheque\\/notice/(?P<id>[0-9]+)$']
                                              [14/Jun/2019 22:56:40] "GET /bibliotheque/notice/1 HTTP/1.1" 500 161949

                                              urls.py :

                                              from django.conf.urls import url
                                              from django.urls import path, re_path
                                              from . import views
                                              
                                              urlpatterns = [
                                                  path('', views.bibliotheque, name='bibliotheque'),
                                                  re_path('notice/(?P<id>[0-9]+)$', views.notice, name='notice'),
                                              ]    

                                              views.py :

                                              from django.shortcuts import render
                                              from . import models, forms
                                              import os
                                              
                                              last_five = models.Article.objects.all()[:5]
                                              
                                              def bibliotheque (request):
                                                  programs = models.Program.objects.all()
                                                  stats = models.Stat.objects.all()
                                                  return render (request, 'bibliotheque/bibliotheque.html', {'programs' : programs, 'stats' : stats, 'last_five' : last_five})
                                              
                                              def notice (request, id):
                                                  program = models.Program.objects.get(id = id)
                                                  form = forms.StatForm(request.POST or None)
                                                  if form.is_valid():
                                                      form.save()
                                                  return render (request, 'bibliotheque/notice.html', {'last_five' : last_five, 'program' : program})

                                              bibliotheque.html :

                                              {% extends 'layouts/base.html' %}
                                              {% load static %}
                                              
                                              {% block titre %}Bibliotheque{% endblock %}
                                              
                                              {% block content %}
                                              <div class="program_table">
                                              	<div class="trier_filtrer">
                                              	    <p class="trier">Trier</p>
                                              	    <p class="filtrer">Filtrer</p>
                                              	</div>
                                              	{% for stats in stats %}
                                              	<div class="program_case">
                                              	    <p class="program_title"><a href="{% url 'notice' id = stats.program_ref.id %}">{{stats.program_ref.name}}</a></p>
                                              	    <p class="program_description">{{stats.program_ref.description}}</p>
                                              	    <p class="program_download">{{stats.download_number}} <img src="{% static 'images/download_logo.png' %}"></p>
                                              	    <p class="program_favorite">{{stats.favorite_number}} <img src="{% static 'images/favorite_logo.jpg' %}"></p>
                                              	    <p class="program_avarage_rating">{{stats.avarage_rating}} / 10</p>
                                              	</div>
                                              </div>
                                              {% endfor %}
                                              {% endblock %}
                                              
                                              {% block title %} Simple Trainer | Bibliotheque {% endblock %}
                                              

                                              nitice.html :

                                              {% extends 'layouts/base.html' %}
                                              {% load static %}
                                              
                                              {% block titre %}{{program.name}}{% endblock %}
                                              
                                              {% block content %}
                                              <p>Clique ici pour télécharger le fichier : <a href="{{program.download_file}}" download="{{program.download_file}}">{{program.name}}</a></p>
                                              <p>Regarde la vidéo ci-dessous pour apprendre à utiliser l'application !</p>
                                              <pre>
                                                  {{program.youtube_code}}
                                              </pre>
                                              <form action="{%url 'notice' %}" method="post">
                                                  {% csrf_token %}
                                                  {{ form.as_p }}
                                                  <input type="submit" value="Envoyer"/>
                                              </form>
                                              
                                              {% endblock %}
                                              
                                              {% block title %} Simple Trainer | Bibliotheque {% endblock %}
                                              

                                              Merci d'avance pour toutes vos réponses !





                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                22 juillet 2019 à 14:33:15

                                                Pierre-YvesMeusnier a écrit:

                                                Commentaires

                                                {% for comment in comments %}

                                                {{ comment.auteur }}, le {{ comment.date }}

                                                {{ comment.contenu|safe }}

                                                {% endfor %}

                                                Poster votre propre commentaire

                                                {% if envoi %}Votre message a bien été envoyé !{% endif %}

                                                <form action="{% url 'blog_lire' article.slug %}" method="post">

                                                {% csrf_token %}
                                                
                                                {{ form1.as_p }}
                                                

                                                <input type="submit" value="Submit" /></pre>

                                                bonjour, je sui coincé au même endroit

                                                Je ne comprends pas le "form1.as_p" à la place du "form.as_p" ? ni le blog_lire dans " form action="{% url 'blog_lire' article.slug %}" method="post" "

                                                pouvez-vous m'éclairer svp ?</pre></pre>

                                                -
                                                Edité par Patous_74 22 juillet 2019 à 14:55:12

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  23 juillet 2019 à 10:30:57

                                                  salut suis nouveau sur le forum
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    24 juillet 2019 à 10:19:47

                                                    Bonjour Patou_74 pour ton {% url 'blog_lire' article.slug %} tu dois le déclaré ton url dans urls.py avec comme name 'blog_lire' et slug comme paramètre

                                                    j'imagine que t'a déja ton views, le forml c'est la variable que t'assigne ta form dans ton views.

                                                    ça pourrai être utile 

                                                    https://tutorial.djangogirls.org/fr/django_forms/

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      24 juillet 2019 à 13:28:51

                                                      Bonjour et merci

                                                      J'ai encore une erreur

                                                      Reverse for 'blog_lire' with arguments '('',)' not found. 1 pattern(s) tried: ['blog/(?P<slug>.+)$']

                                                       ça doit venir de mon urls.py :

                                                      from . import views
                                                      from django.urls import path, re_path
                                                      
                                                      urlpatterns = [
                                                      #'blog.views',
                                                       # url(r'^$', 'accueil', name='accueil'),
                                                       #url(r'^(?P<slug>.+)$', 'lire_article', name='blog_lire'),
                                                      re_path(r'^$', views.accueil, name='accueil'),
                                                      re_path(r'^(?P<slug>.+)$', views.lire_article, name='blog_lire'),
                                                      ]

                                                      J'ai ma vue comme ceci :

                                                      def lire_article(request, slug):
                                                          """
                                                          Affiche un article complet, sélectionné en fonction du slug
                                                          fourni en paramètre
                                                          """
                                                          article = get_object_or_404(Article, slug=slug)
                                                      
                                                          commentaires = Comment.objects.filter(is_visible = True).filter(article = article.id)[:1]
                                                      
                                                          if request.method == 'POST':
                                                              form = CommentForm(request.POST)
                                                              if form.is_valid():
                                                                  pseudo = form.cleaned_data['pseudo']
                                                                  email = form.cleaned_data['email']
                                                                  commentaire = form.cleaned_data['commentaire']
                                                                  article = article.id
                                                          else:
                                                              form = CommentForm()
                                                      
                                                      
                                                          return render(request, 'blog/lire_article.html', {'article': article, 'commentaires' : commentaires, 'form' : form})

                                                      et mon template :

                                                      <h4>Poster votre propre commentaire</h4>
                                                       
                                                      {% if envoi %}Votre message a bien été envoyé !{% endif %}
                                                       
                                                      <form action="{% url 'blog_lire' article.slug %}" method="post">
                                                          {% csrf_token %}
                                                          {{ form.as_p }}
                                                          <br><br> <br><br> <br><br> <br><br> <br><br>
                                                          <input type="submit" value="Envoyer" />
                                                          <br><br>
                                                      </form>



                                                      mais je ne sais pas si c'est bien de mettre tout dans le même render, mais je ne sais pas comment faire autrement car tout doit être dans le même template




                                                      -
                                                      Edité par Patous_74 24 juillet 2019 à 13:32:24

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        29 juillet 2019 à 16:27:40

                                                        Bonjour,

                                                        comment tu le génère ton slug?

                                                        tu l'a en paramètre mais tu ne l'a pas déclaré dans ta view . je vois que tu l'a fais avec article et commentaire.

                                                        -
                                                        Edité par MouhaSarr 29 juillet 2019 à 16:31:42

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          8 août 2019 à 10:56:24

                                                          Bonjour à tous,

                                                          Je ne suis pas sur ce cours mais sur "Decouvrir le Framework Django", je pense que les cours django pâtissent tous de n'avoir pas été mis à jour avec la V2. Jusque là je m'en sortais, j'ai trouvé toutes les correspondances avec la doc de django.

                                                          Cependant je sèche, j'ai l'erreur suivante:

                                                          TypeError at /

                                                          __init__() missing 1 required positional argument: 'app_module'
                                                          Request Method: GET
                                                          Request URL: http://127.0.0.1:8000/
                                                          Django Version: 2.2.4
                                                          Exception Type: TypeError
                                                          Exception Value:
                                                          __init__() missing 1 required positional argument: 'app_module'
                                                          Exception Location: C:\Users\adrie\Formation\Disquaire\env\lib\site-packages\debug_toolbar\panels\templates\panel.py in _request_context_bind_template, line 46
                                                          Python Executable: C:\Users\adrie\Formation\Disquaire\env\Scripts\python.exe
                                                          Python Version: 3.7.4
                                                          Python Path:
                                                          ['C:\\Users\\adrie\\Formation\\Disquaire\\disquaire_project',
                                                           'C:\\Users\\adrie\\Formation\\Disquaire\\env\\Scripts\\python37.zip',
                                                           'C:\\Users\\adrie\\Formation\\Disquaire\\env\\DLLs',
                                                           'C:\\Users\\adrie\\Formation\\Disquaire\\env\\lib',
                                                           'C:\\Users\\adrie\\Formation\\Disquaire\\env\\Scripts',
                                                           'C:\\Users\\adrie\\AppData\\Local\\Programs\\Python\\Python37-32\\Lib',
                                                           'C:\\Users\\adrie\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs',
                                                           'C:\\Users\\adrie\\Formation\\Disquaire\\env',
                                                           'C:\\Users\\adrie\\Formation\\Disquaire\\env\\lib\\site-packages']
                                                          Server time: jeu, 8 Aoû 2019 10:38:43 +0200

                                                          Elle survient aprés l'ajout de d'un template business casual.

                                                          L'erreur m'a d'abord fait penser à une incompatibilité de debug_toolbar mais suite à désinstallation la même erreur se reproduit dans les fichier sources de django, 

                                                          Bref il manque quelque chose mais je ne trouve pas quoi.

                                                          Voici ma config:

                                                          (env) λ pip freeze

                                                          Django==2.2.4

                                                          django-debug-toolbar==2.0

                                                          psycopg2==2.8.3

                                                          pytz==2019.2

                                                          sqlparse==0.3.0

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            22 août 2019 à 11:47:53

                                                            Bonjour.

                                                            je suis sur un projet django en ce moment et j'aimerais y inclure un forum. Mon forum est formé autour de deux entités, la question et la reponse. une reponse est lié à une question et une question peut avoir plusieurs réponses.

                                                            Voilà mes modèles

                                                            class Question(models.Model):
                                                            contenu= models.TextField(blank=False)
                                                            date= models.DateTimeField(auto_now_add=True)
                                                            user= models.ForeignKey(User,on_delete=models.CASCADE)

                                                            def __str__(self):
                                                            return self.contenu

                                                            class Reponse(models.Model):
                                                            contenu=models.TextField(blank=False)
                                                            date=models.DateTimeField('date de reponse', auto_now_add=True)
                                                            question= models.ForeignKey(Question, on_delete=models.CASCADE)
                                                            user=models.ForeignKey(User,on_delete=models.CASCADE)

                                                            def __str__(self):
                                                            return self.contenu

                                                             Lorsqu'un utilisateur répond à une question, je n'arrive pas à enregistrer cette réponse car je ne parviens pas à récupérer la contenu de la question vu que la reponse et la question sont liés

                                                            voilà ma fonction

                                                            def repondre(request):

                                                            if request.method=='POST':
                                                            form=ReponseForm(request.POST)

                                                            if form.is_valid():
                                                            contenu=form.cleaned_data['contenu']
                                                            reponse= Reponse.objects.create(contenu=contenu, user=request.user, question = " " )
                                                            else:
                                                            form=ReponseForm()
                                                            reponse=Reponse.objects.filter(question__contenu= " ")
                                                            form=ReponseForm()
                                                            context={
                                                            'reponses':reponse,
                                                            'form':form

                                                            }
                                                            return render(request, 'monForum/reponse.html', context)

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              23 août 2019 à 3:06:27

                                                              MerveilleZebaze Pour récupérer la question tu peux ajouter un attribut  cache dans ton formulaire qui contient l'id de la question,

                                                              Quelques choses comme ça:

                                                              <input type="hidden" value="{{ question.id }}" name="question"/>

                                                              Après tu le récupères  dans ta méthode POST comme ça:

                                                              id = request.POST['question'];
                                                              question = Question.objects.get(id=id)



                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              #©je code quand je m'ennuie

                                                              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