Mohssen A Mohssen نشر 23 فبراير 2022 أرسل تقرير نشر 23 فبراير 2022 أود أن أحصل على CharField بطول ثابت في النموذج Model. أريد أن يكون الطول المحدد فقط هو الصحيح. حاولت إستخدام الكود التالي national_number = models.CharField('National Number', max_length=14, min_length=14) لكنه يعطيني خطأ (يبدو أنه لا يمكنني استخدام max_length و min_length في نفس الوقت). كيف أقوم بهذا الأمر في جانغو Django؟ اقتباس
1 Bassam Ahmed3 نشر 23 فبراير 2022 أرسل تقرير نشر 23 فبراير 2022 يمكنك تثبيت قيمة الحقل عن طريق : 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 في الحقل 2 اقتباس
1 مسعود زاهي نشر 23 فبراير 2022 أرسل تقرير نشر 23 فبراير 2022 يُمكنك إشتخدام المُدَقق 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 اقتباس
السؤال
Mohssen A Mohssen
أود أن أحصل على CharField بطول ثابت في النموذج Model. أريد أن يكون الطول المحدد فقط هو الصحيح. حاولت إستخدام الكود التالي
لكنه يعطيني خطأ (يبدو أنه لا يمكنني استخدام max_length و min_length في نفس الوقت).
كيف أقوم بهذا الأمر في جانغو Django؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.