使处理django模型更加有趣的实用程序集合。

django-modeltools的Python项目详细描述


安装

  1. pip install django-modeltools

包括的工具

枚举

Enum类允许您快速定义模型字段值的枚举类型。构造函数接受kwargs,其中键是“常量”的名称,值是一个包含常量值(将存储在数据库中)和标签的二元组。

用法

在models.py中:

frommodeltoolsimportEnumclassMyModel(models.Model):Color=Enum(RED=('r','Red'),GREEN=('g','Green'),BLUE=('b','Blue'),)color=models.CharField(max_length=1,choices=Color.choices())

其他地方:

m=MyModel.objects.filter(color=MyModel.Color.RED)

格式化文件名

函数format_filename提供了一种基于存储用户媒体(上载的文件)的模型属性命名用户媒体的简单方法。

使用量

在models.py中:

frommodeltoolsimportformat_filenameas_ffclassPerson(models.Model):first_name=models.CharField(max_length=50)last_name=models.CharField(max_length=50)middle_name=models.CharField(max_length=50)avatar=models.ImageField(upload_to=_ff('avatars/{last_name}_{first_name}'))

在上面的示例中,{first_name}{last_name}将替换为Person实例中的相应值。上载的文件将自动保留其原始扩展名。

upload_to=_ff('avatars/{last_name}_{first_name}/{__filename}.thumbnail{__ext}')

{__filename}{__ext}允许访问上载文件时使用的名称和扩展名。

默认情况下,格式化模式中使用的属性将转换为小写,去掉非单词字符,并将其空格替换为下划线。(此行为可以通过向format_filename函数提供额外参数来更改。)格式化字符串的其余部分将不受影响。

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

推荐PyPI第三方库


热门话题
Java:在迭代器类型(接口/实现类)之间转换?   java“Click Method”不断返回“Stale Element Exceoption”?   Android应用程序/进程的java生命周期?   java在发布消息时收到“无法识别的Windowssocket错误:0:recv失败”   java如何返回第二个值   java将基本授权头添加到一些请求中   使用改型安卓的java Post请求错误   PropertyPlaceHolderConfigure位置内的java Spring占位符   java是导入com的工具。谷歌。安卓gms。gcm无法解决,Google Play服务已经安装   java如何获取JSON数据的多个可选值?   java如何使用ApachePOI从word中的形状读取文本   安卓 java。Eclipse中的lang.NoClassDefFoundError,但不适用于Ant   如何在Java中用stream()将Map<v1,Set<v2>>转换为Map<v2,Set<v1>>   循环在java中循环时,如何从数组列表中删除某些内容?