Django не вызывает ошибку при создании объекта без передачи обязательных полей

У меня есть такая модель Django:

class Registration(models.Model):
    appId =models.CharField(max_length = 100)
    registeredUser = models.ForeignKey('auth.User', null=True, blank=True)

Когда я перехожу к интерфейсу Django Shell с помощью оболочки python manage.py и пытаюсь создать объект Registration без передачи поля appId (которое является обязательным полем), например:

Registration.objects.create(registeredUser = userobject)

Он создает объект регистрации, не выдавая мне ошибку Вы не можете установить для appId (поле, не допускающее значение NULL) значение None!. Как это происходит? Почему это не выдает ошибку? Что я делаю неправильно или я что-то упускаю?


person user1170793    schedule 03.08.2012    source источник


Ответы (1)


AppID объекта Registration будет иметь значение '' (т. е. пустая строка).

Кроме того, ознакомьтесь с документацией для параметра null. , вы увидите, что отсутствие параметра null не означает, что поле не может принимать значение null. Вместо этого null=True означает, что пустые значения хранятся в базе данных как NULL.

Если вы хотите избежать пустых строк, либо добавьте правило к проверке поля этой модели, либо через свои формы.

person LaundroMat    schedule 03.08.2012