Позитивно вставить NULL (не пусто!) С Джанго - PullRequest
0 голосов
/ 19 апреля 2019

Null не является пустой строкой!

select count(*) from table where xyz is null не совпадает с select count(*) from table where xyz == ''!

Если у меня есть уникальное ограничение для столбца, несколько значений NULL могутсуществовать.Несколько пустых строк не могут!

Я знаю, в чем разница.Мне не нужно объяснение.Все, что я хочу знать, это как вставить значение NULL в администраторе Django.

Я пытался:

default=None
null=True

Нет, я не хочу blank.Я хочу NULL.

Когда я смотрю на мои схемы из моих миграций, я ясно вижу, что столбцы позволяют NULL.

Итак, каков бесполезный маленький синтаксис в динамически типизированном питонеКажется, что эта проблема ложится на SEO людей, которые не понимают, что такое ограничения?

Это поле обязательно для заполнения.

Нет, это не так.Я ясно вижу это по структуре таблицы.

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Вы также должны указать blank=True, поэтому администратор django позволит вам установить пустые строки.

Например, я протестировал его на этой модели:

class NullFieldModel(models.Model):
    title = models.CharField(max_length=100, null=True, default=None, blank=True)

и он работалс sqlite.Следующий запрос ответьте мне с новой моделью:

SELECT * FROM testapp_nullfieldmodel WHERE testapp_nullfieldmodel.title IS NULL
0 голосов
/ 19 апреля 2019

Когда Django отправляет обновление в MySQL для поля NULL, оно не вставляет его как NULL (когда вы находитесь в администраторе).

например, у вас есть поле openid_key, котороеURL-адрес пользователя OpenID URL-адрес.Этот URL должен быть уникальным и должен быть помечен как таковой для целостности БД.

Вы заходите в администратор и редактируете пользователя, у него нет openid_key.Вы сохраняете пользователя, Все в порядке.

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

Django попытался вставить "" вместо NULL для этого поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...