اذهب إلى المحتوى

السؤال

نشر

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

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

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

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

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

Recommended Posts

  • 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. إذا كنت تحتاج لذلك لسبب ما.

  • 0
نشر

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

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

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...