• 1

ما الفرق بين null و blank في النماذج في جانغو Django؟

عندما نضيف حقل قاعدة بيانات في جانغو Django، نكتب بشكل عام:

models.CharField(max_length=255, null=True, blank=True)

لكن لم أفهم ما الفرق بين الحالات التالية:

كتابة null=True فقطك، أو كتابة blank=True فقط، أو كتابة null=True و blank=True معًا

نحن نستعمل نفس الشيء من حقول مثل ForeignKey و ManyToManyField و DateTimeField، ما هي فوائد وعيوب كل طريقة من الطرق الثلاث السابقة؟ وهل يوجد فرق من الأساس؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

null = True يعين NULL (مقابل NOT NULL) في العمود في قاعدة البيانات الخاصة بك. سيتم تخزين القيم الفارغة لأنواع حقول Django مثل DateTimeField أو ForeignKey على أنها NULL في قاعدة البيانات. يحدد blank ما إذا كان الحقل مطلوباً في النماذج. وهذا يشمل ال admin والنماذج المخصصة الخاصة بك "custom forms". إذا كانت blank = True، فلن يكون الحقل مطلوباً (أي سيقبل القيم الفارغة blank values)، بينما إذا كان False فلا يمكن أن يكون الحقل فارغاً. يكون الجمع بين الاثنين متكرراً جداً لأنه عادةً إذا كنت ستسمح لأحد الحقول بأن يكون فارغاً في النموذج الخاص بك، فستحتاج أيضاً إلى أن تجعل قاعدة البيانات الخاصة بك تسمح بقيم NULL لهذا الحقل. الاستثناء هو CharFields و TextFields، والتي لا يتم حفظها في Django على أنها NULL. يتم تخزين القيم الفارغة في قاعدة البيانات كسلسلة فارغة (""). أمثلة:

#يعطي خطأ  IntegrityError if blank
models.DateTimeField(blank=True)
#مسموحة NULL  قيم
models.DateTimeField(null=True) # ولكن يجب تعبئتها في نموذج  

من الواضح أن هذين الخيارين ليس لهما معنى منطقي للاستخدام (على الرغم من أنه قد يكون هناك حالة استخدام لـ null = True ، blank = False إذا كنت تريد أن يكون الحقل مطلوباً دائماً في النماذج، وهو اختياري عند التعامل مع كائن من خلال شيء مثل ال shell):

models.CharField(blank=True) #"" سيتم تخزين القيم الفارغة ك 
#مسموحة NULL قيم 
models.CharField(null=True)
#NULL ولكن لن يتم تعيينها على أنها  

لا يتم حفظ أنواع CHAR و TEXT كـ NULL بواسطة Django ، لذا فإن null = True غير ضروري. ومع ذلك ، يمكنك تعيين أحد هذه الحقول يدوياً إلى None لفرض تعيينه على أنه NULL. إذا كنت تحتاج لذلك لسبب ما.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يجب الاول معرفة ماهى الnull وما هو الblank

حسنا فان الblank هو قيمة فارغة ("") ,ولكنه قيمة ,اليس كذلك؟ انها قيمة فارغة ولكن فى النهاية تزال قيمة, مثل الصفر, هو قيمة وفى النهاية يتم تخزينه فى الذاكرة المؤقتة

اما الnull فتعنى انه لا يوجد قيمة لهذا العنصر, انه ليس فارغ,انه ليس بصفر, انه فقط لا قيمة له ولا يتم تخزينه فى الذاكرة المؤقته, ببساطة لانك لا تستطيع ان تخزن قيمة شئ ليس له قيمة

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن