У меня та же проблема, и она была детализирована до самого процесса создания таблицы (поскольку проблемы возникают и при выполнении тестов.)
Для такой модели:
class MyModel(models.Model):
owner = models.ForeignKey(User, null=True, blank=True)
сгенерированный sql (с ./manage.py sql
):
CREATE TABLE `app_mymodel` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`owner_id` integer
)
ALTER TABLE `app_mymodel` ADD CONSTRAINT `owner_id_refs_id_34553282` FOREIGN KEY (`owner_id`) REFERENCES `auth_user` (`id`);
Таким образом, кажется, что сама таблица допускает значения Null, но ограничение FK на уровне БД фактически ограничивает значения фактическими ссылками,поэтому нет значений NULL ...
Это ошибка в Django?
EDIT: Оказывается, таблица, созданная с помощью предыдущей команды , будет принимает значения NULL в столбце FK и фактически имеет DEFAULT NULL
в спецификации столбца, когда записывается с SHOW CREATE TABLE app_mymodel;
.Странно, но я не могу сейчас повторить ошибки.