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.

Вернуться на верх