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

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