كيف يمكنني الحصول على جميع الكائنات في نموذج Django له قيمة محددة لحقل أمين الأمريكية؟
-
23-08-2019 - |
سؤال
لدي نموذج مع مفتاح أجنبي من "الوالد"
class Item(models.Model):
parent = models.ForeignKey(Parent)
هذا هو نموذج FK
class Parent(models.Model):
name = models.CharField(blank=True, max_length=100)
def __unicode__(self):
return str(self.name)
أحاول تشغيل استعلام يحصل على جميع العناصر مع أحد الوالدين من "XYZ" لا أحصل عليه
Item.objects.filter(parent="xyz")
عندما أحاول:
Item.objects.filter(parent.name="xyz")
أو:
Item.objects.filter(str(parent)="xyz")
أحصل على خطأ:
SyntaxError: keyword can't be an expression
ما هي الطريقة الصحيحة للقيام بهذا العمل؟
المحلول
يمكنك استخدام السفلات السفلية المزدوجة في الكلمة الرئيسية التي تم تمريرها إلى filter()
للوصول إلى الحقول في علاقة مفتاح خارجية. مثله:
Item.objects.filter(parent__name="xyz")
نصائح أخرى
فقط للإشارة المستقبلية للمجلة، مع الإصدارات الحديثة من Django، يجب عليك استخدام طريقة إضافية في الكلمة الأساسية. على سبيل المثال، بدلا من parent__name
عليك أن تفعل parent__name__exact
. وبعد رابط كاتو يحتوي على أمثلة أخرى.
لا تنتمي إلى StackOverflow