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.pyadmin.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/

posted on 2014-08-27 11:39  颓废的悠然  阅读(1519)  评论(0编辑  收藏  举报

导航