小编cla*_*tte的帖子

后续:缺少必需的django中的Charfield Modelform保存为空字符串,不会引发错误

如果我尝试在Django 1.10中保存不完整的模型实例,我会期望Django引发错误.似乎并非如此.

models.py:

from django.db import models

class Essai(models.Model):
    ch1 = models.CharField(max_length=100, blank=False)
    ch2 = models.CharField(max_length=100, blank=False)
Run Code Online (Sandbox Code Playgroud)

所以我有两个字段不允许为空(默认行为,NOT NULLDjango在MySQL表创建时应用了限制).我希望Django在存储之前没有设置其中一个字段时会出错.

但是,当我创建一个不完整的实例时,数据存储得很好:

>>> from test.models import Essai
>>> bouh = Essai()
>>> bouh.ch1 = "some content for ch1"
>>> bouh.save()
>>> bouh.id
9
>>> bouh.ch1
'some content for ch1'
>>> bouh.ch2
''
>>> 
Run Code Online (Sandbox Code Playgroud)

我原本以为Django会引发错误.但是,如果我强制ch2使用None,则会引发错误:

>>> bouh = Essai()
>>> bouh.ch1 = "some content for ch1"
>>> bouh.ch2 = None
>>> bouh.save()
Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

python mysql django validation django-models

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

标签 统计

django ×1

django-models ×1

mysql ×1

python ×1

validation ×1