2013-04-16 5 views
9

Je travaille sur un projet django dans lequel j'ai besoin d'un champ DateField parfois vide. Mon modèle ressemble à ceci:Modèle Django: champ NULLable

#models.py 
end = models.DateField(default=None, blank=True) 

Mais quand je lance python manage.py sql myapp l'instruction SQL finissent toujours par être

CREATE TABLE "myapp_date" (
"end" date NOT NULL 
); 

Par conséquent, mon champ est annulable et non je ne peux pas comprendre ce que je devrais faire pour faire en sorte. N'importe quelle idée est la bienvenue !

Répondre

24

Vous devez utiliser

end = models.DateField(default=None, blank=True, null=True) 

Fondamentalement blank vous permet de passer une valeur nulle, mais null indique la base de données d'accepter les valeurs NULL.

+1

J'ai honte, je pensais que j'avais déjà essayé ça; Je suppose que je n'avais pas essayé les trois arguments en même temps ... Ça marche maintenant, merci pour l'aide !! – Robin

+0

Aucun problème, nous arrive à tous :) – Ngenator

+0

Cela n'a pas fonctionné pour moi, en fait j'ajoute le champ de date plus tard, il y a déjà quelques valeurs sans champ de date. –

Questions connexes