Django-fr

Forum

  • Accueil
  • » Django-fr
  • » models.DateTimeField(auto_now_add=True) error quand python manage.py m

#1 23-11-2014 21:52:27

Ennicolem
Membre
Inscription : 13-11-2014
Messages : 8
Site Web

models.DateTimeField(auto_now_add=True) error quand python manage.py m

Bonsoir,

J'ai un souci avec la création de ma class sous Django 1.7 (configuré avec Python 3.4).
J'ai une classe qui me semble classique, en suivant le tuto sur OpenClassrooms : http://openclassrooms.com/courses/de...amework-django, un bouquin que j'ai acheté ainsi que sur la documentation officielle Django mais je bloque et aucun ne parle vraiment en détail de la propriété DateField et DateTimeField.

Donc ci-après ma class toute simple pour créer la table:

class Publisher(models.Model):
    name = models.CharField(max_length=150)
    slug = models.CharField(max_length=150)
    added = models.DateTimeField(auto_now_add=True)
    edited = models.DateTimeField(auto_now=True)
 
    def __str__(self):
        return self.name

Ensuite j'execute python manage.py makemigrations sauf que voilà ce que ça me dit :

You are trying to add a non-nullable field 'added' to collection without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
Je ne comprends pas ce que je dois faire. Il me semblait que auto_now_add=True et auto_now=True étaient là pour ça...
J'ai cherché sur google mais soit les stackoverflow sont trop complexes pour ma compréhension encore toute relative de Django, soit c'est hors sujet.

Merci d'avance pour l'explication de ce bug et éventuellement la façon de le résoudre.

Bonne soirée,

Hors ligne

#2 24-11-2014 10:19:26

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : models.DateTimeField(auto_now_add=True) error quand python manage.py m

Bonjour,

Il n'y a pas de bug. Tu ajoutes une colonne non nulle dans ta base de donnée. Pour le cas où tu aurais déjà des données il faut leur donner une valeur moyennant quoi la contrainte de non-nullité ne serait pas respectée.

Hors ligne

#3 24-11-2014 14:11:24

Ennicolem
Membre
Inscription : 13-11-2014
Messages : 8
Site Web

Re : models.DateTimeField(auto_now_add=True) error quand python manage.py m

Bonjour,

Merci, en effet, il n'y a pas de bug, juste une incompréhension de ma part.
J'ai vidé ma base et tout fonctionne bien.

Hors ligne

  • Accueil
  • » Django-fr
  • » models.DateTimeField(auto_now_add=True) error quand python manage.py m

Pied de page des forums