相关疑难解决方法(0)

Django unique = True不工作

这是来自django的文档:

Field.unique

如果为True,则该字段在整个表中必须是唯一的.

这在数据库级别和模型验证中强制执行.如果您尝试在唯一字段中保存具有重复值的模型,则模型的save()方法将引发django .db.IntegrityError.

这是我的models.py

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
Run Code Online (Sandbox Code Playgroud)

这是我的manage.py sqlall(我运行了syncdb)

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

但是,在manage.py shell中,我可以自由地执行此操作:

>>> from MyModel.models import MyModel
>>> MyModel().save() # it works fine!? Not even the text was checked …
Run Code Online (Sandbox Code Playgroud)

python django

34
推荐指数
1
解决办法
5万
查看次数

标签 统计

django ×1

python ×1