Maram Jouriah نشر 25 أبريل 2021 أرسل تقرير نشر 25 أبريل 2021 عادة لما بدنا نضيف حقل قاعدة بيانات ضمن الdjango نكتب التعليمة models.CharField(max_length=100, null=True, blank=True) بدي اعرف الفرق بين اني اكتب: 1- null = True لوحدها 2- blank = True لوحدها 3- null = True, blank = True سوا 1 اقتباس
1 Wael Aljamal نشر 25 أبريل 2021 أرسل تقرير نشر 25 أبريل 2021 عند تحديد null = true، سيقوم إطار العمل بوضع القيمة الافتراضية للعمود ضمن جدول البيانات ب null ويقبل إدخالها كقيمة فارغة في قاعدة البيانات وعكسها NOT NULL. blank = true نستطيع عندها جعل هذا الحقل اختياري (ليس إجباري not required). أما blank = false سيكون حقل إجباري عند التحقق من المدخلات في المخدم مثل: someForm.is_valid(); إذا تستخدم الخاصتين لجعل حقل ما قابل لأن يكون فارغ (بدون بيانات) والسماح بوضع القيمة null في قاعدة البيانات. لكن الحقلين CharFields and TextField عندما تكون قيمتهم فارغة لا يتم تخزينهم على شكل null إنما كسلسلة نصية فارغة ' ' في Django بالمقابل في قواعد البيانات تقبل null للسلاسل حيث يفضل الاقتصار على blank=True. null=True/False related to database # تتعلق بقواعد البيانات blank=True/False related to form validation # تتلق بالتحقق ضمن إطار العمل التوثيق : docs.djangoproject.com 1 اقتباس
0 Salah Eddin Beriani2 نشر 25 أبريل 2021 أرسل تقرير نشر 25 أبريل 2021 كلاهما يفعل نفس الشيء تقريبًا ، كما يوحي الاسم ولكن هنا الفرق: Null: إنه متعلق بقاعدة البيانات. يحدد ما إذا كان عمود قاعدة بيانات معين سيقبل القيم الخالية أم لا. Blank: يتعلق بالتحقق من الصحة. سيتم استخدامه أثناء التحقق من صحة النماذج ، عند استدعاء form.is_valid (). ومع ذلك ، من الجيد تمامًا أن يكون لديك حقل به قيمة Null = True و Blank = False. بمعنى على مستوى قاعدة البيانات ، يمكن أن يكون الحقل فارغًا ، ولكنه حقل مطلوب في مستوى التطبيق. اقتباس
0 Hasan Dayoub نشر 27 أبريل 2021 أرسل تقرير نشر 27 أبريل 2021 فيما يلي كيف يقوم ال ORM بتحقيق blank و null في دجانغو 1.8 class Test(models.Model): charNull = models.CharField(max_length=10, null=True) charBlank = models.CharField(max_length=10, blank=True) charNullBlank = models.CharField(max_length=10, null=True, blank=True) intNull = models.IntegerField(null=True) intBlank = models.IntegerField(blank=True) intNullBlank = models.IntegerField(null=True, blank=True) dateNull = models.DateTimeField(null=True) dateBlank = models.DateTimeField(blank=True) dateNullBlank = models.DateTimeField(null=True, blank=True) أما قاعدة البيانات فيتم إنشائها كما يلي في PostgreSQL 9.4: CREATE TABLE Test ( id serial NOT NULL, "charNull" character varying(10), "charBlank" character varying(10) NOT NULL, "charNullBlank" character varying(10), "intNull" integer, "intBlank" integer NOT NULL, "intNullBlank" integer, "dateNull" timestamp with time zone, "dateBlank" timestamp with time zone NOT NULL, "dateNullBlank" timestamp with time zone, CONSTRAINT Test_pkey PRIMARY KEY (id) ) أما في MySQL 5.6 : CREATE TABLE Test ( `id` INT(11) NOT NULL AUTO_INCREMENT, `charNull` VARCHAR(10) NULL DEFAULT NULL, `charBlank` VARCHAR(10) NOT NULL, `charNullBlank` VARCHAR(10) NULL DEFAULT NULL, `intNull` INT(11) NULL DEFAULT NULL, `intBlank` INT(11) NOT NULL, `intNullBlank` INT(11) NULL DEFAULT NULL, `dateNull` DATETIME NULL DEFAULT NULL, `dateBlank` DATETIME NOT NULL, `dateNullBlank` DATETIME NULL DEFAULT NULL ) اقتباس
السؤال
Maram Jouriah
عادة لما بدنا نضيف حقل قاعدة بيانات ضمن الdjango نكتب التعليمة
بدي اعرف الفرق بين اني اكتب:
1- null = True لوحدها
2- blank = True لوحدها
3- null = True, blank = True سوا
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.