django - Django TextField 不强制执行空白=假
问题描述
我无法django.db.models.TextField(blank=False)
强制执行非空白。它似乎忽略了约束,只强制非空。
例子:
import django.core.exception
import django.db.models
import unittest
class Mymodel(django.db.models.Model):
id = django.db.models.AutoField(primary_key=True)
text = django.db.models.TextField(blank=False, null=False)
with self.assertRaises(django.core.exception.ValidationError):
Mymodel.objects.create() # <--- should raise validation exception
上面的代码创建了一个字段设置为空白字符串的新Mymodel
实例text
,但它应该引发一个ValidationError
详细信息:python 3.8.5、django 3.1、postgresql 12.4
解决方案
你需要调用full_clean()
方法
from django.core import exceptions
class TestTextFieldError(TestCase):
def test_error(self):
with self.assertRaises(exceptions.ValidationError):
instance = Mymodel()
instance.full_clean()
推荐阅读
- csv - 获取 pyarrow.lib.ArrowInvalid:CSV 解析错误:预期 9 列,得到 1
- installation - 如何在 Windows 10 上安装和运行 Neo4j?
- java - Spring Boot 自动装配属性问题
- matlab - MATLAB 中的机器人动画
- vue.js - 如何在 Vuejs 中加载 Pixijs BitmapText
- json - NoSuchMethodError(NoSuchMethodError:在 null 上调用了方法“[]”。接收方:null 尝试调用:[](“title”))
- javascript - 可选的链接运算符开玩笑测试
- html - 本地角度应用程序找不到我的资产文件夹图像
- python - 如何在 RNN LSTM 网络中使用评估指标?
- java - Spark:“expr”是什么意思?