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 الكامل بالعربي.