我有以下型號,其中B與A中的許多一對一的關係:當我使用上的一個一個QuerySetDjango的查詢集排除空的外鍵設置
class A(model.Model):
name = models.IntegerField()
class B(models.Model
a = models.ForeignKey(A, db_column='a_id')
,是有辦法排除A中沒有B行的行?
我有以下型號,其中B與A中的許多一對一的關係:當我使用上的一個一個QuerySetDjango的查詢集排除空的外鍵設置
class A(model.Model):
name = models.IntegerField()
class B(models.Model
a = models.ForeignKey(A, db_column='a_id')
,是有辦法排除A中沒有B行的行?
no_rows_in_b = B.objects.all().select_related('a')
將讓你所有B與A的
然後你就可以通過他們的輸出循環A的
如果你想不重複:
no_rows_in_b = B.objects.all().distinct('a').select_related('a')
然後:
for rec in no_rows_in_b:
print(rec.a)
請注意,如果你想更明確的,你可以做這樣的事情:
A.objects.exclude(b__isnull=True).distinct()
使用exclude
代替filter
和使用True
布爾ARG。
非常好...每天學點新東西... – Incognos