get()
جلب سجل واحد بالضبط get()
get() تُرجع كائنًا واحدًا مطابقًا للشرط — ترمي خطأ إذا لم يوجد أي تطابق أو وُجد أكثر من تطابق واحد.
بعكس filter() التي تُرجع QuerySet (حتى لو نتيجة واحدة أو فارغة)، get() تتوقّع تطابقًا واحدًا بالضبط: ترمي DoesNotExist إذا لم يوجد شيء، وMultipleObjectsReturned إذا وُجد أكثر من واحد.
الصياغة
Model.objects.get(field=value)
📄 مثال
try:
post = Post.objects.get(slug="my-first-post")
except Post.DoesNotExist:
post = Noneأهم المعاملات
| المعامل | الوظيفة |
|---|---|
| field=value | شرط يُفترض أن يطابق سجلًا واحدًا بالضبط، غالبًا حقل فريد (id، slug) |
💡 نصائح عملية
- استخدمها فقط مع حقول فريدة (primary key، slug فريد) — لا مع حقول قد تتكرر قيمها
- بالعروض (Views)، استخدم get_object_or_404() بدل try/except يدوي مع get()
⚠️ أخطاء شائعة
- استخدامها بحقل غير فريد — ترمي MultipleObjectsReturned إذا تطابق أكثر من سجل
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار DJANGO الكامل بالعربي.