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

السؤال

نشر

لدي نموذج في أحد مشاريع جانغو Django وأرغب في تصفية النموذج حسب طول نص العمود password، حاولت إستخدام الكود التالي، ولكن يبدو أنه هذه ليست الطريقة الصحيحة للقيام بهذا الأمر:

Model.objects.filter(len(password) > 8)

حيث أن المتغير password عبارة عن TextField

Recommended Posts

  • 1
نشر

إبتداءًا من النسخة رقم 1.8 من جانغو يمكننا إستخدام الدالة Length والتي تقوم بنفس عمل الدالة LENGTH الموجودة في نظام قواعد البيانات. لاستخدام هذه الدالة للقيام بتصفية كائنات النموذج نقوم بالتالي:

Model.objects.annotate(password_len=Length('password')).filter(password_len__gt=10)

شرح الشفرة:

  • قُمنا بإضافة حقل إلى ال QuerySet وسميناه password_len، هذا الحقل هو نتيجة حساب طول الحقل password باستخدام الدالة Length.
  • قُمنا بتصفية ال QuerySet باستخدام عملية البحث gt والتي هي مختصر Greater than أي أكبر من.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...