Django-Tests lösen keinen Integritätsfehler für CharField aus

Wenn Sie das folgende Django (1.4) Modell haben:

from django.db import models

class SimpleModel(models.Model):
    name = models.CharField(max_length=100)

Und dieser einfache Test:

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()

Als Datenbank wird eine sqlite3-Datenbank verwendet. Wenn ich jetzt die tests mit laufen lassepython manage.py test <appname> Der Test schlägt mit fehlAssertionError: IntegrityError not raised.

Die Frage ist:Warum?

Soweit ich Django verstehe (oder zu verstehen glaubte), sind die Standardwerte für Fieldsblank=False undnull=False Ich würde also davon ausgehen, dass das Speichern einer Modellinstanz mit dem Standardwert (der für ein CharField meiner Meinung nach eine leere Zeichenfolge sein sollte) auf jeden Fall fehlschlagen sollte! Warum passiert das nicht?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage