跳转到主要内容

一组使处理Django模型更有趣的实用工具。

项目描述

安装

  1. pip install django-modeltools

包含的工具

Enum

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

用法

在models.py中

from modeltools import Enum

class MyModel(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

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

用法

在models.py中

from modeltools import format_filename as _ff

class Person(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函数提供额外参数来更改此行为。)其余的格式化字符串将不受影响。

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面