تخطَّ إلى المحتوى

values() / values_list()

استخراج حقول محدّدة فقط values() / values_list()

values() تُرجع النتائج كقواميس Python بدل كائنات نموذج كاملة، وvalues_list() تُرجعها كصفوف (tuples) — أخف وأسرع عند الحاجة لحقول محدّدة فقط.

بدل تحميل كل حقول النموذج (وربما علاقاته) عندما تحتاج فعليًا عمودًا أو اثنين فقط، values()/values_list() توفّر أداءً أفضل بتقليل البيانات المنقولة من قاعدة البيانات.

الصياغة

Model.objects.values("field1", "field2")
Model.objects.values_list("field", flat=True)

📄 مثال

# قواميس
Post.objects.values("title", "created_at")
# [{'title': '...', 'created_at': ...}, ...]

# قائمة قيم بسيطة بحقل واحد
titles = Post.objects.values_list("title", flat=True)
# ['عنوان1', 'عنوان2', ...]

أهم المعاملات

المعاملالوظيفة
flat=Trueمع values_list وحقل واحد فقط، يُرجع قائمة قيم مباشرة بدل صفوف

💡 نصائح عملية

  • استخدمها لبناء قوائم اختيار (dropdown) أو تصدير بيانات بلا حاجة لكائنات النموذج الكاملة

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار DJANGO الكامل بالعربي.