Django - Нет против Null

124
10

Я устанавливаю ForeignKey для on_delete=models.SET_NULL, null=True Но я запутался, я просто хочу, чтобы If FK был удален, все остальные отношения должны оставаться в db.

является результатом

on_delete=models.SET_NULL, null=True

а также

on_delete=models.SET_DEFAULT, default=None

то же самое для моей цели?

спросил(а) 2021-01-25T16:26:18+03:00 4 месяца, 3 недели назад
1
Решение
77

Да. Это приведет к такому же результату.

Однако вы должны установить null=True в обоих примерах, потому что он решает, может ли поле быть NULL на уровне базы данных.

В первом примере у вас нет значения по умолчанию. Это означает, что вам нужно установить значение, прежде чем вы сможете сохранить объект в базе данных.

Я бы пошел для on_delete=models.SET_NULL, default=None, null=True

ответил(а) 2021-01-25T16:26:18+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема