模型清理方法和验证错误连接的混合

django-model-cleanup的Python项目详细描述


https://img.shields.io/pypi/v/django-model-cleanup.svghttps://img.shields.io/travis/wooyek/django-model-cleanup.svgDocumentation StatusCoveralls.io coverageCodeCov coverageMaintainabilityLicenseTweet about this projecthttps://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg< P>混合模型用于模型清理方法和验证错误连接

H2>洁精蛋白的特征
  • 提供干净的方法实现
  • 调用完全清除将导致调用所有清除方法
  • 无论验证错误如何,都将调用所有方法-一次获取所有错误
  • 如果错误没有错误,则根据干净的方法名自动将错误映射到字段名

快速启动

安装django模型清理程序:

pip install django-model-cleanup

在您的模型中添加MIXIN,并在 FuluCurry被称为:

时,享受 Cuffy方法集合和错误级联。

fromdjango.core.exceptionsimportValidationErrorfromdjango.dbimportmodelsfromdjango.utils.translationimportugettext_lazyas_fromdjango_model_cleanupimportCleanMixin,ExtensibleValidationErrorclassSomeModel(CleanMixin,models.Model):lorem=models.CharField(max_length=10,blank=True)defclean_foo(self):raiseValidationError('Foo is bad')defclean_bar(self):raiseExtensibleValidationError({'bar':_('Bar is wrong cause %s > %s!')},code='bar',params=(2,1))defclean_legacy(self):# We can't init ValidationError as one-liner, cause dict + params are not compatible# We need to wrap a message in ValidationError and put that in dict indicating a fieldmsg=_('Bar legacy error %s > %s!')error=ValidationError(msg,code='bar',params=(7,5))raiseValidationError({'bar':error})

不再需要每次错误处理和连接:

# This is not longer required:defclean(self):errors=[]try:self.clean_foo()exceptValidationErrorasex:errors.append(ex)errors=[]try:self.clean_bar()exceptValidationErrorasex:errors.append(ex)errors=[]try:self.clean_legacy()exceptValidationErrorasex:errors.append(ex)iferrors:raiseValidationError(errors)

运行测试

代码真的有用吗?

::
$pipenv安装–开发 $pipenv外壳 $tox

我们建议使用pipenv,但创建virtualenv和安装需求的传统方法也应该有效。 请安装requirements/development.txt以设置用于测试和开发的虚拟环境。

学分

这个包是用Cookiecutterwooyek/cookiecutter-django-app项目模板创建的。

历史记录

0.1.0(2017-12-05)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我能知道文件的哪个条目正在被修改吗?   多线程Java并发线程   java抓取包含多个页面的多个字母标签的网站   为什么if语句不排除Java中的另一个if语句?   Java可序列化哈希映射到ByteArray以创建blob   JavaEclipseLombokBuilder添加新建议   java将文件路径数组转换为文件数组,并计算每个文件的大小   在Java8流中添加大小数   Bouncy Castle 1.46之前版本的java兼容性问题   无法在AWS设备场上运行安卓 Java Appium测试   java为什么不使用mavenwarplugin将键与“WEBINF/classes/METAINF/MANIFEST.MF”合并?   java如何在引用子类的成员时调用super()   找不到java TestFx无头MonoclePlatformFactory   java AbstractMethodError onClientSessionEvent和“缺少控制媒体的权限”   正则表达式如何使用JAVA在字符串的大写字母前插入空格?   我的Spring安全项目中的java BCrypt(Spring安全)   java在我的网站上查看小程序更新时遇到问题   java如何使用schedule方法