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

السؤال

نشر

ما هو الفرق بين CharField و TextField في جانغو Django؟

قراءت في توثيق Django أنه يجب استخدام CharField للنصوص الصغيرة بينما يجب استخدام TextField للنصوص الكبيرة. لكن لم يتم توضيح سبب هذا الأمر ولا كيف يمكنني تقدير أن نص معين كبير أم صغير، هل هناك حد فاصل بينهما؟ مثلًا كل النصوص التي طولها اأقل من 100 حرف تعد "نصوص قصير" بينما كل ما هو أكبر من ذلك يعد "نصوص كبيرة"؟ ما هو سبب الإختلاف بين هذين النوعين من الأساس؟

 

Recommended Posts

  • 1
نشر
  • CharField هو حقل خاص بالسلاسل النصية "string field"، ويستخد للسلاسل صغيرة إلى كبيرة الحجم. وهو مثل حقل السلسلة في C / C ++. و يستخدم CharField بشكل عام لتخزين سلاسل صغيرة مثل الاسم الأول واسم العائلة وما إلى ذلك. أما لتخزين نص أكبر يتم استخدام TextField. أداة النموذج الافتراضية لهذا الحقل هي TextInput.
    يحتوي CharField على وسيطة إضافية مطلوبة:
CharField.max_length

أقصى طول للحقل (بعدد المحارف). ويتم فرض هذا ال max_length على مستوى قاعدة البيانات وفي Django’s validation باستخدام MaxLengthValidator. وله الشكل التالي:

field_name = models.CharField(max_length=200, **options) 

كما ذكرت يستخدم CharField لتخزين سلاسل صغيرة الحجم في قاعدة البيانات. يمكننا مثلاً تخزين الاسم الأول واسم العائلة وتفاصيل العنوان وما إلى ذلك. ويجب إعطاء CharField وسيطة max_length لتحديد الحد الأقصى لطول السلسلة المطلوب تخزينها. في ال production server ، بعد نشر تطبيق Django ، تكون المساحة محدودة للغاية. لذلك من الأفضل دائماً استخدام max_length وفقًا لمتطلبات الحقل.

  • TextField عبارة عن حقل نصي كبير من أجل النصوص كبيرة الحجم. ويستخدم TextField بشكل عام لتخزين الفقرات وجميع البيانات النصية الأخرى (يستخدم لتخزين نص كبير في قاعدة البيانات أما في حال أردنا تخزين نص صغير نستخدم charfield). عنصر واجهة المستخدم الافتراضي لهذا الحقل هو TextArea. وله الشكل التالي:
field_name = models.TextField( **options)

أيضاً تستخدم CharFields عادةً للأشياء القابلة للبحث، مثل إذا كنت تريد البحث عن "one" في السلسلة "one plus two". نظرًا لأن السلسلة النصية تكون أقصر، فإنها تستغرق وقتاً أقل للمحرك للبحث من خلالها. أيضاً فإن أقصى حد لطول السلسلة فيه هو 255.

  • 0
نشر (معدل)

الcharfield يحمل كحد أقصى 255 حرف, بينما الtextfield ليس لديه حد معين 

ويرجع ذلك إلى إختلاف الأنواع الموجودة في قواعد البيانات, حيث أنه يوجد varchar والتي يجب أن يكون لديه طول معين كحد أقصى

ع عكس انواع مثل الText او الclob التي ليس لديها حد أقصى ,فعند إستخدام الtextfield يتم إنشاء تلك الأنواع التي ليس لها طول محدد, بينما عند إستخدام الcharfield يتم تحويله في قاعدة البيانات إلىvarchar(255)

وعامةً متى وجدت البيانات لديها حد أقصى من الطول مثل الإسم أو العنوان فيفضل إستخدام الcharfield

بينما البيانات الأخرى التي ليس لها طول ثابت مثل محتوى المقالة, وصف المنتج فيجب إستخدام الtextfield

تم التعديل في بواسطة شرف الدين2
اكمال الإجابة

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...