Django único = verdadero no funciona

Esto es de la documentación de django:

Field.unique

Si es verdadero, este campo debe ser único en toda la tabla.

Esto se aplica en el nivel de la base de datos y mediante la validación del modelo. Si intenta guardar un modelo con un valor duplicado en un campo único, se generará un django .db.IntegrityError mediante el método save () del modelo.

Aquí están mis modelos.

class MyModel(models.Model):
    # my pk is an auto-incrementing field
    url = models.URLField("URL", unique=True)
    text = models.TextField(max_length=1000)
    # my model is just two fields, one pk (unique), and another unique field, 
    #, the url

Aquí mi es manage.py sqlall (ejecuté syncdb)

CREATE TABLE `MyModel_mymodel` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
     `url` varchar(200) NOT NULL UNIQUE,
     `text` varchar(1000) NOT NULL,

Sin embargo, en el shell manage.py, puedo hacer esto libremente:

>>> from MyModel.models import MyModel
>>> MyModel().save() # it works fine!? Not even the text was checked for!
>>> MyModel(url="blah").save() 
>>> MyModel(url="blah").save() # it still works!

# I checked the mysql database afterwards, the models were saved just fine, they
# however did have different PK's (auto incrementing fields).

Estoy usando mysql, django 1.5. ¿Alguien tiene una idea de lo que podría estar causando esto?

Estoy usando un administrador personalizado, pero dudo que ese sea el problema.

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta