django-extensions
命令行:
admin后台管理扩展
后面会出现个放大镜实现搜索补齐功能。
交互式的 Python Shells(shell_plus)
实现自动导入
如果遇到apps中包含的的models名字出现冲突,或不想载入特定apps的models的情况,可以通过配置别名的方法解决:
# 将自动载入的Messages模块重命名为blog_messages
SHELL_PLUS_MODEL_ALIASES = {'blog': {'Messages': 'blog_messages'},}
# 不加载sites app和pictures的blog模型
SHELL_PLUS_DONT_LOAD = ['sites', 'blog.pictures']
设置别名和声明不加载的配置可以同时使用.也可以通过命令行参数设置不加载的模块:
$ ./manage.py shell_plus --dont-load app1 --dont-load app2.module1
命令行的参数和配置文件中的设置是可以同时使用的,所以一次性的参数完全可以通过命令行运行,省去频繁修改配置文件的麻烦.
create_app
--diagram 参数能够从 .dia 文件生成 models.py 和 admin.py.--template 参数指定使用一个模板来创建新的app.
dumpscript
概要 | 生成单独的Python脚本,包含指定app对应的数据库数据对象.可以用来将数据表导入数据库. |
---|
顾名思义,写脚本直接把数据导入数据库。
runscript
在当前项目环境下执行脚本,这个功能非常有用,它能够允许在不启动Django服务的同时以Django项目的环境变量执行脚本方法.
export_emails
以不同的格式导出用户的邮件列表
model字段扩展
用法:
几个常用字段:
- AutoSlugField - 自动生成一个唯一的slug,生成方式是以迭代方式给当前字段后面添加一个随机字符,知道不重复为止.slug生成方式的灵感来自于 SmileyChris 的唯一码生成代码片段.
- CreationDateTimeField - DateTimeField类型字段,会自动保存数据第一次被保存到数据库的时间戳.工作方式与添加了 auto_now_add=True 参数相同,而 auto_now_add 参数已经不推荐使用.
- ModificationDateTimeField - DateTimeField类型字段,当数据出现修改是会自动保存被修改的时间戳.工作方式与添加了 auto_now=True 参数相同,而 auto_now 参数已经不推荐使用.
- UUIDField - 唯一标识码字段,通过本地Python模块生成的唯一标识码,支持所有版本的uuid.
- EncryptedCharField - 字符串类型字段,会将数据以加密的方式保存和现实,加密方法使用 Keyczar.使用这个扩展字段时需要安装Keyczar,通过Keyczar库生成加密的密钥,还要在django项目的 settings.py 中添加 settings.ENCRYPTED_FIELD_KEYS_DIR 配置,指向密钥的完整目录.
- EncryptedTextField - 字符串类型字段,与 EncryptedCharField 字段类似,但是继承自 TextField 字段.
- ShortUUIDField - 字符串类型字段,将生成的uuid转换成较短的字符串(好像是57进制)。生成字符串结果的长度小于22位,通过参数可以生成更短的字符长度,短长度字符虽然不能保证绝对的唯一性,但重复的概率极低.
from django_extensions.db.fields import CreationDateTimeField
create_time = CreationDateTimeField()
validate_templates
检查模板的语法错误或编译错误.
更多:http://django-extensions-zh.readthedocs.org/zh_CN/latest/