django-models Django: أي ما يعادل "حدد [اسم العمود] من [tablename]"




1 Answers

لديك نموذج A مع مفتاح خارجي إلى طراز آخر B ، وتريد تحديد B s التي يشار إليها ببعض A هل هذا صحيح؟ إذا كان الأمر كذلك ، فإن طلب البحث هو فقط:

B.objects.filter(a__isnull = False)

إذا كانت لديك شروط على A ، فيمكن أن يكون الاستعلام:

B.objects.filter(a__field1 = value1, a__field2 = value2, ...)

راجع وثائق العلاقات العكسية لـ Django للحصول على توضيح لماذا يعمل هذا ، وخيار ForeignKey.related_name إذا كنت ترغب في تغيير اسم العلاقة إلى الوراء.

django django-models

أردت أن أعرف هل هناك أي شيء يعادل:

select columnname from tablename

مثل يقول جانغو البرنامج التعليمي:

Entry.objects.filter(condition)

يجلب كل الكائنات مع الشرط المحدد. إنه يشبه:

select * from Entry where condition

لكنني أرغب في إنشاء قائمة بعمود واحد فقط (وهو في حالتي مفتاح خارجي). وجدت ذلك:

Entry.objects.values_list('column_name', flat=True).filter(condition)

يفعل الشيء نفسه. ولكن في حالتي ، العمود هو مفتاح خارجي ، ويفقد هذا الاستعلام خاصية مفتاح خارجي. انها مجرد تخزين القيم. لا أستطيع إجراء مكالمات البحث.




Related