Dans Django models.py, quelle est la différence entre default, null et blank?

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 comme NULL dans la firebase database. La valeur par défaut est False .

Notez que les valeurs de chaîne vides seront toujours stockées sous forme de chaînes vides, et non NULL . N’utilise que null=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éfinir blank=True si vous souhaitez autoriser les valeurs vides dans les formulaires, car le paramètre null affecte uniquement le stockage de la firebase database (voir blank ).

Évitez d’utiliser null sur des champs basés sur des chaînes tels que CharField et TextField moins que vous n’ayez une excellente raison. Si un champ basé sur des chaînes a la valeur null=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 non NULL .

Field.blank

Si True , le champ est autorisé à être vide. La valeur par défaut est False .

Notez que ceci est différent de null . null est purement lié à la firebase database, tandis que le blank est lié à la validation. Si un champ a blank=True , la validation sur le site d’administration de Django permettra l’entrée d’une valeur vide. Si un champ est blank=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: Quand utiliser null et vide

Quand utiliser null et vide