Dans Django models.py, quelle est la différence entre les valeurs par défaut, null, et vide?
null=True
blank=True
default = 0
Quelle est la différence? Quand pensez-vous utiliser quoi?
Vous devez vous connecter pour publier un commentaire.
null=True
blank=True
default = 0
Quelle est la différence? Quand pensez-vous utiliser quoi?
Vous devez vous connecter pour publier un commentaire.
Directement Django champ de modèle de référence:
Ne comprenez-vous pas tout cela?
null
est sur la base de données de stockage. Django est d'exposer un utile, mais relativement dangereux aspect de bases de données SQL. C'est vraiment quelque chose qui doit être expliqué dans la documentation plutôt que de se limiter ou d'exécution dans le code—il n'y a pas de limitation qui pourrait être exécutée sans casser utile (bien que potentiellement coin cas) fonctionnalité.De docs:
Vous pouvez utiliser "
default
" pour régler la valeur qui sera utilisée pour le champ en question votre code pas explicitement définie sur une valeur.Utiliser "
blank
" pour former des fins de validation - blank=True permettra le terrain pour être fixée à une valeur videUtiliser "
null
" si vous souhaitez stocker une valeur vide "null" dans la base de données. Souvent, il est préférable, cependant, de définir des valeurs vides à une chaîne vide ou à 0 comme il convient pour un domaine donné.Dans la mise en œuvre modalités:
Le 'vide' champ correspond à toutes les formes. Spécifie si cette valeur est requise dans le formulaire de validation du formulaire est fait.
Le "vrai" permet à des valeurs vides.
L' 'null' champ correspond à niveau en DB. Il est défini comme la valeur NULL ou not NULL à la DB.
Donc si laissez un champ vide dans l'admin avec blank=true, la valeur NULL est introduit dans la DB. Maintenant, ce pourrait lever une erreur si cette colonne dans la base de données est spécifié comme not NULL.
Je sais que vous avez déjà votre réponse cependant jusqu'à ce jour il est difficile de juger si
null=True
oublank=True
ouboth
à un champ. Personnellement, je pense que c'est assez inutile et source de confusion pour offrir de nombreuses options pour les développeurs. Laissez la gérer la nuls ou blancs mais ils veulent.Je suis sur ce tableau: