Partage
  • Partager sur Facebook
  • Partager sur Twitter

Django

Création d'une table

Sujet résolu
    17 mai 2013 à 15:52:26

    Salut,

    Je suis le tuto sur la création d'un site avec le frameworks Django.

    A la partie "Créer un modèle", je n'arrive pas à créer la table :

    D:\Documents\MesSites\SiteAvecDjango\crepes_bretonnes>python manage.py syncdb
    
    SyntaxError: 'return' outside function (models.py, line 17)

    J'ai déjà rencontré un problème lors de la création du site que je suis parvenu à surmonter, mais là, j'avoue que je vois pas pourquoi. Si une âme charitable voulais bien se pencher sur mon problème...

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
    « Celui qui trouve sans chercher  est celui qui a longtemps cherché sans trouver. »     - Gaston BACHELARD
    Anonyme
      17 mai 2013 à 16:56:17

      T'aurais pas utiliser le mot clé return en dehors d'une fonction par hasard?
      • Partager sur Facebook
      • Partager sur Twitter
        17 mai 2013 à 17:03:44

        Voilà, ce message d'erreur me laisse penser qu'il y a une erreur de syntaxe ligne 17 dans le fichier models.py :-°
        • Partager sur Facebook
        • Partager sur Twitter

        Blond, bouclé, toujours le sourire aux lèvres...

          18 mai 2013 à 10:30:59

          J'ai seulement c/c le code du tuto dans models.py :

          #-*- coding: utf-8 -*-
          from django.db import models
          
          # Create your models here.
          class Article(models.Model):
              titre = models.CharField(max_length=100)
              auteur = models.CharField(max_length=42)
              contenu = models.TextField(null=True)
              date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de parution")
           
              def __unicode__(self):
                  """
                  Cette méthode que nous définirons dans tous les modèles
                  nous permettra de reconnaître facilement les différents objets que nous
                  traiterons plus tard et dans l'administration
                  """
              return u"%s" % self.titre
          

          J'analyse le code en gros, je ne suis pas un pro de python.

          Mais déjà, merci de vos interventions

          • Partager sur Facebook
          • Partager sur Twitter
          « Celui qui trouve sans chercher  est celui qui a longtemps cherché sans trouver. »     - Gaston BACHELARD
          Anonyme
            18 mai 2013 à 10:52:07

            Si tu n'arrives pas à reconnaître un problème d'indentation, ça promet.

            Tu vois pas que ton return n'est pas indenté? Il faut réapprendre les bases python...

            • Partager sur Facebook
            • Partager sur Twitter
              18 mai 2013 à 11:06:47

              J'y ai penser ce matin, suite à vos remarques. Mais j'obtiens toujours un message d'erreur :

              D:\Documents\MesSites\SiteAvecDjango\crepes_bretonnes>python manage.py syncdb
              ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

              Donc là, c'est mon fichier settings.py qu'il faut revoir ? :/

              La partie incriminée (de mémoire, je n'ai rien modifié sur celle ci) :

              DATABASES = {
                  'default': {
                      'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
                      'NAME': 'database.sql',          # Or path to database file if using sqlite3.
                      # The following settings are not used with sqlite3:
                      'USER': '',
                      'PASSWORD': '',
                      'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
                      'PORT': '',                      # Set to empty string for default.
                  }
              }
              



              Pour l'indentation, comme je cherche à comprendre, il serait bien qu'elle soit respectée sur le tuto.

              Je rappelle que j'ai juste fais un c/c. Pensez à tous ceux qui veulent tester, trop timides pour demander et qui, du coup, abandonnent....

              Je programme, d'habitude, en php. Il est vrai que tu n'es pas obligé de faire une indentation propre vu que tu as des {} pour englober les commandes d'une fonction.

              [EDIT] : autant pour moi, je suis retourné dans "configuration du projet", et je n'avais pas remarqué qu'il fallait rajouter le type de bdd :p

              -
              Edité par JLuc69 18 mai 2013 à 11:13:30

              • Partager sur Facebook
              • Partager sur Twitter
              « Celui qui trouve sans chercher  est celui qui a longtemps cherché sans trouver. »     - Gaston BACHELARD
              Anonyme
                18 mai 2013 à 11:44:56

                C'est en effet une autre erreur, mais vous n'avez plus le problème de return, c'est donc résolu.

                Un autre problème arrive, mais comme j'y connais pas grand chose à Django... Cependant apparemment, tu as un problème de configuration dans ta base de données, il faudrait revoir le tutoriel afin de vérifier les erreurs possibles.

                Please supply ENGINE value est un problème réglé ici.

                Bonne continuation...

                • Partager sur Facebook
                • Partager sur Twitter

                Django

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown