Как заставить select_related() выбрать ForeignKeys с атрибутом null = True?

Model1 имеет ForeignKey для Model2. И Model2 имеет ForeignKey (Model3, null = True, blank = True) для Model3. По умолчанию, когда я использую select_related() в Model1, Model3 не выбирается из-за null = True. Как заставить force_related() следовать за foreign_key, у которого есть null = True?

Единственный способ, которым я могу думать, это явно выбрать эти внешние ключи:

model1s = Model1.objects.all().select_related('model2', 'model2__model3')

Это единственный способ?

Ответы

Ответ 1

Да, так вы могли бы выбирать связанные элементы с нулем = True.

Прямо из docs для select_related:

Вы можете ссылаться на любое отношение ForeignKey или OneToOneField в списке полей, переданных select_related. Ths включает внешние ключи, которые имеют значение null = True (в отличие от вызова по умолчанию select_related()).

Есть ли причина, по которой вам нужен другой способ выполнить это действие? Если нет, у вас все уже есть.