【发布时间】:2025-12-16 01:45:02
【问题描述】:
如果有以下 Django (1.4) 模型:
from django.db import models
class SimpleModel(models.Model):
name = models.CharField(max_length=100)
还有这个简单的测试:
from django.test import TestCase
from models import SimpleModel
from django.db import IntegrityError
class SimpleTest(TestCase):
def test_integrity_error(self):
with self.assertRaises(IntegrityError):
m = SimpleModel()
m.save()
使用 sqlite3 数据库作为数据库。如果我现在使用python manage.py test <appname> 运行测试,则测试失败并使用AssertionError: IntegrityError not raised。
问题是:为什么?
据我了解(或认为了解)Django,字段的默认值为blank=False 和null=False,所以我假设使用默认值保存模型实例(我认为对于 CharField 应该是一个空字符串)肯定会失败!那么,为什么没有发生这种情况呢?
【问题讨论】:
标签: django