Как заставить 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()).
Есть ли причина, по которой вам нужен другой способ выполнить это действие? Если нет, у вас все уже есть.