Django select_related возвращает пустой набор запросов, если PK удален из другой таблицы
Рассмотрим, что у меня есть таблица, которая имеет отношение foreignkey с моделью пользователя.
class MyModel(models.Model):
created_user = models.ForeignKey(settings.AUTH_USER_MODEL)
Я беру queryset следующим образом
qs = MyModel.objects.select_related('created_user').all()
Этот запрос работает нормально, но если пользователь удален из базы данных, то он показывает пустой набор запросов.
Если вы хотите, чтобы экземпляр был защищен после удаления, вы можете использовать опцию models.PROTECT
следующим образом:
class MyModel(models.Model):
created_user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
Посмотреть все варианты ForeignKey.on_delete
.