Size: a a a

Django [ru] #STAY HOME

2020 May 25

RP

Ruslan Petrov in Django [ru] #STAY HOME
Антон
в модели
Меня смущает то, что кастомной командой manage.py я заполнил базу без полей - CharField, хотя не указывал, что они не обязательные, а админка требует их заполнять
источник

А

Антон in Django [ru] #STAY HOME
migrate может быть, а не manage?
null=True, blank=True
написал?
источник

RP

Ruslan Petrov in Django [ru] #STAY HOME
Антон
migrate может быть, а не manage?
null=True, blank=True
написал?
источник

А

Антон in Django [ru] #STAY HOME
если ты используешь кастомные команды, то при чем здесь админка? может база данных у тебя их не принимает? как создавал таблицу? вручную или через миграцию?
источник

RP

Ruslan Petrov in Django [ru] #STAY HOME
Антон
если ты используешь кастомные команды, то при чем здесь админка? может база данных у тебя их не принимает? как создавал таблицу? вручную или через миграцию?
Я заполнил базу создавая объекты в базе с помощью кастомной команды (циклом по данным из файла пробежался), но при этом не заполнял некоторые поля объектов, с типом CharField, хотя у этих полей в моделях не указано null=True, blank=True, а админка требует их заполнять.
источник

А

Антон in Django [ru] #STAY HOME
чтобы через админку ты их мог оставлять пустыми, нужен нуль=тру, бланк=тру
источник

RP

Ruslan Petrov in Django [ru] #STAY HOME
Это я уже понял, но такое поведение меня смутило.
источник

А

Антон in Django [ru] #STAY HOME
если бы в базе у тебя стоял запрет на нулевые значения, то ты бы и через кастомную команду их бы не создал
источник

RP

Ruslan Petrov in Django [ru] #STAY HOME
Допустим, но суть моего вопроса не в этом. Я просто хотел удостовериться у более опытных людей, в том, что есть такое различие в поведении. Получается вручную я могу создать объект в котором явно не указан запрет на вставку объектов с пустыми полями типа CharField, но и нет явно указанной возможности, а через админку нет.
источник

А

Антон in Django [ru] #STAY HOME
что значит "явно не указан запрет" - если не указал null=True, и нет default то это уже запрет
источник

RP

Ruslan Petrov in Django [ru] #STAY HOME
Антон
что значит "явно не указан запрет" - если не указал null=True, и нет default то это уже запрет
источник

RP

Ruslan Petrov in Django [ru] #STAY HOME
Ну вот моя модель, там поле skills, не указано null=True
источник

А

Антон in Django [ru] #STAY HOME
с точки зрения джанго это обязательное поле, а джанго ОРМ, наверное, просто в sql запросы это переводит, не проверяя, что в модели написано, и в базе значит запрета на нулевые значения нет
источник

RP

Ruslan Petrov in Django [ru] #STAY HOME
источник

RP

Ruslan Petrov in Django [ru] #STAY HOME
Вот что-то такое я и хотел уточнить
источник

S

Stanley in Django [ru] #STAY HOME
Ruslan Petrov
Вот что-то такое я и хотел уточнить
а в БД стоит галочка allow nulls?
источник

S

Stanley in Django [ru] #STAY HOME
на поле skills
источник

S

Stanley in Django [ru] #STAY HOME
Ruslan Petrov
Вот что-то такое я и хотел уточнить
Скорее всего в поле записана пустая строка. Вот тут написано, поправьте если не прав https://docs.djangoproject.com/en/3.0/ref/models/fields/#null
источник

S

Stanley in Django [ru] #STAY HOME
Ruslan Petrov
Вот что-то такое я и хотел уточнить
Проверь в БД какое значение записано в поле
источник

MI

Mickle Ivanov in Django [ru] #STAY HOME
а у тебя случайно такой код не на продакшене?
источник