Когда я определяю ненулевое поле в django, это позволяет мне сохранить экземпляр модели без указания какого-либо значения для этого ненулевого поля. Это не то, что я ожидал. Как я могу заставить это привести к ошибке?
Postgres 9.1
Джанго 2.1
окна
питон 3,6
from django.db import models
class Wwtp(models.Model):
name = models.CharField(max_length=100, null=False,
blank=False, unique=True)
short_name = models.CharField(
max_length=10, null=False, blank=False, unique=True)
Как и ожидалось, мне не разрешено сохранять его с явным пустым коротким именем.
mdl.Wwtp.objects.create(name='Wwtp4', short_name=None)
Но мне разрешено сохранять экземпляр Wwtp без указания короткого имени:
mdl.Wwtp.objects.create(name='Wwtp4')
и когда я пытаюсь:
mdl.Wwtp.objects.create()
это дает мне
django.db.utils.IntegrityError: duplicate key value violates unique constraint "api_wwtp_short_name_key"
DETAIL: Key (short_name)=() already exists.
Очевидно, что django заполнил базу данных пустым значением для short_name
, хотя это нельзя делать ... Как я могу заставить базу данных запретить это?