null = True blank = True par défaut = 0
Quelle est la différence? Quand utilisez-vous quoi?
Référence directe du champ modèle Django :
Field.null
Si
True
, Django stockera les valeurs vides commeNULL
dans la firebase database. La valeur par défaut estFalse
.Notez que les valeurs de chaîne vides seront toujours stockées sous forme de chaînes vides, et non
NULL
. N’utilise quenull=True
pour les champs non-ssortingng tels que les entiers, les booléens et les dates. Pour les deux types de champs, vous devez également définirblank=True
si vous souhaitez autoriser les valeurs vides dans les formulaires, car le paramètrenull
affecte uniquement le stockage de la firebase database (voirblank
).Évitez d’utiliser
null
sur des champs basés sur des chaînes tels queCharField
etTextField
moins que vous n’ayez une excellente raison. Si un champ basé sur des chaînes a la valeurnull=True
, cela signifie qu’il a deux valeurs possibles pour «no data»: NULL et la chaîne vide. Dans la plupart des cas, il est redondant d’avoir deux valeurs possibles pour «no data»; la convention de Django consiste à utiliser la chaîne vide, et nonNULL
.
Field.blank
Si
True
, le champ est autorisé à être vide. La valeur par défaut estFalse
.Notez que ceci est différent de
null
.null
est purement lié à la firebase database, tandis que leblank
est lié à la validation. Si un champ ablank=True
, la validation sur le site d’administration de Django permettra l’entrée d’une valeur vide. Si un champ estblank=False
, le champ sera requirejs.
Field.default
La valeur par défaut pour le champ. Cela peut être une valeur ou un object appelable. S’il est appelable, il sera appelé chaque fois qu’un nouvel object est créé.
Tu ne comprends pas tout ça?
De docs :
null
Si True, Django stockera les valeurs vides comme NULL dans la firebase database. La valeur par défaut est False.
blank
Si True, le champ est autorisé à être vide. La valeur par défaut est False.
default
Valeur par défaut du champ.
Vous pouvez utiliser ” default
” pour définir la valeur qui sera utilisée pour le champ en question si votre code ne la définit pas explicitement.
Utilisez ” blank
” pour la validation du formulaire – blank = True permettra de définir le champ à une valeur vide
Utilisez ” null
” si vous souhaitez stocker une valeur vide comme “null” dans la firebase database. Toutefois, il est souvent préférable de définir des valeurs vides sur une chaîne vide ou sur 0, selon le cas, pour un champ donné.
En termes de mise en œuvre:
Le champ ‘vide’ correspond à tous les formulaires. Spécifie si cette valeur est requirejse dans le formulaire et que la validation de formulaire correspondante est effectuée. ‘True’ autorise les valeurs vides.
Le champ ‘null’ correspond au niveau de la firebase database. Il sera défini comme NULL ou NOT NULL sur la firebase database.
Par conséquent, si vous laissez un champ vide dans admin avec blank = true, NULL est introduit dans la firebase database. Cela peut maintenant générer une erreur si cette colonne particulière de la firebase database est spécifiée comme NOT NULL.
Je sais que vous avez déjà votre réponse, mais jusqu’à ce jour, il est difficile de juger s’il faut mettre null=True
ou blank=True
ou les both
à un champ. Personnellement, je pense que c’est assez inutile et déroutant de fournir autant d’options aux développeurs. Laissez le gérer les null ou les blancs comme ils veulent.
Je suis ce tableau: