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

كيفية التحقق من طول الحقل في نموذج model في جانغو Django؟

Mohssen A Mohssen

السؤال

أود أن أحصل على CharField بطول ثابت في النموذج Model.  أريد أن يكون الطول المحدد فقط هو الصحيح. حاولت إستخدام الكود التالي

national_number = models.CharField('National Number', max_length=14, min_length=14)

لكنه يعطيني خطأ (يبدو أنه لا يمكنني استخدام max_length و min_length في نفس الوقت).

كيف أقوم بهذا الأمر في جانغو Django؟

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

Recommended Posts

  • 1

يُمكنك إشتخدام المُدَقق RegexValidator للتحقق من طول القيمة قبل حفظها في قاعدة البيانات مع مُراعاة أن الرقم الموضوع في العبارة النمطية '^.{10}$' هو نفسه قيمة max_length:

from django.core.validators import RegexValidator #قم باستدعاء المُدقق

class MyModel(models.Model):
	"""
	قم بإضافة المدقق إلى الحقل 
	وقم باستبدال 10 بالطول الذي تُريده
	"""
	national_number = models.CharField('National Number', max_length=10, validators=[RegexValidator(regex='^.{10}$', message='يجب أن يكون طول القيمة يُساوي 10', code='nomatch')])
    

كما يُمكنك إستخدام المُدقق MinLengthValidator مع مُراعاة أن القيمة المُمَرَّرَةُ له هي نفسها قيمة max_length:

from django.core.validators import MinLengthValidator #قم باستدعاء المُدقق

class MyModel(models.Model):
	"""
	قم بإضافة المدقق إلى الحقل 
	وقم باستبدال 10 بالطول الذي تُريده
	"""
	national_number = models.CharField('National Number', max_length=10, validators=[MinLengthValidator(10)])
    

 

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

  • 1

يمكنك تثبيت قيمة الحقل عن طريق :

from django.core.exceptions import ValidationError

def validate_length(value,length=6):
    if len(str(value))!=length:
        raise ValidationError(u'%s is not the correct length' % value)

from django.db import models

class MyModel(models.Model):
    constraint_length_charField = models.CharField(validators=[validate_length] , max_length = 6)

حيثُ أن تم تثبيت القيمه في داله و من ثم استدعاؤها في النموذج model الخاص بك من أجل التحقق منها و قد تلاحظ انه قد تم كتابة الأمر max_length مجدداً و ذلك حتى لا تحدث مشكله عن كتابة الأمرين python manage.py makemigrations / python manage.py migrate

أي يجب تحديد قيمة الحقل في كلاً من : length في الداله المطلوب التحقق منها و max_length في الحقل

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...