Для этой (сильно упрощенной) настройки модели Django:
class A(models.Model)
class B(models.Model)
a = models.ForeignKey(A, null=True, blank=True)
class C(models.Model)
b = models.ForeignKey(B, null=True, blank=True)
Я хотел бы убедиться, что для запроса на C никакие связанные объекты, не являющиеся [a1, a2], не являются частьюquery.
Что-то вроде:
qs = C.objects.exclude(b__a__NOT_in=[a1, a2]).
Я ищу , а не
qs = C.objects.filter(b__a__in=[a1, a2])
, так как мои внешние ключи обнуляются,и я также хотел бы получить случаи, когда любой из fks на пути равен нулю.
Какой самый элегантный способ решить эту проблему?
Спасибо!