django-scaffold-toolkit

Django开发中一组常用工具。包括表单生成,验证,富文本编辑器,useragent检测等等


License
Other
Install
pip install django-scaffold-toolkit==0.5.3

Documentation

Django 脚手架

Change log

  • 0.5.x 支持Django 2.x

  • 0.4.x 支持Django 1.8 - 1.11

表单验证

基于FormValidation

支持的验证

用法

  • 激活scaffold_toolkit.formvalidator
INSTALLED_APPS=(
    ...
    scaffold_toolkit.formvalidator,
    ...
)
  • 按照常规定义Django的model和form。定义时的验证规则,会自动生成客户端验证脚本。

* 验证脚本

在需要验证的模板上,根据情况,添加如下代码存根。

{% load formvalidator %}
<link rel="stylesheet" href="{% formvalidator_css_url %}">

<script src="{% formvalidator_javascript_url %}">
<script src="{% formvalidator_language_url 'zh_CN' %}"> <!-- if needed -->
<script>
    {% formvalidator 'formSelector' form  %}
</script>

校验类

formvalidator已经原生支持Django的校验,比如不为空(notEmpty),字符串长度(stringLength)等等。只需要按照Django的常规方法定义相关的字段即可。

对于部分特殊的校验,如phone、zip等,可以在form中设置校验类。在scaffold_toolkit.formvalidator.forms.validators中提供了一组自定义校验类:

  • IdValidator
  • ZipCodeValidator
  • IdenticalValidator
  • DifferentValidator
  • RemoteValidator
  • ChoicesValidator
  • CallBackValidator
  • PhoneValidator
  • EmailAddressValidator
  • UriValidator
  • FileValidator
  • ImageFileValidator
  • VideoFileValidator
  • AudioFileValidator

zui表单工具

此模块几乎所有代码都来自于 django-bootstrap3。只是将基础框架替换为zui。表签名亦替换为zui。

文档请参阅:http://django-bootstrap3.readthedocs.org/en/latest/

用法

  • 激活scaffold_toolkit.zui
INSTALLED_APPS=(
    ...
    scaffold_toolkit.zui,
    ...
)

渲染

{% load zui %}
<form ...>
    ...
    {% zui_form form %}
    ...
</form>

Middleware

scaffold_toolkit.middleware.devicetemplate.TemplateForDeviceMiddleware

如果采用移动设备访问,则自动修改模板修改路径改为: [mobile/template_name, template_name]。亦即: 可以为移动设备设置专属的模板,而代码中无需特殊说明

scaffold_toolkit.middleware.useragentdetecet.UserAgentDetectMiddleware

为request增加ua属性。ua.is_mobile指示是否移动设备,ua.os指示操作系统

scaffold_toolkit.middleware.exceptionlogging.ExceptionLoggingMiddleware

错误记录入日志文件

mailgun

widgets

scaffold_tool.forms.datetimepicker.DateTimePicker,scaffold_tool.forms.datetimepicker.TimePicker

日期时间,时间选择控件

scaffold_toolkit.kindeditor.KindEditor

富文本编辑器

视图

scaffold_toolkit.views.py

AjaxFormView,AjaxForm

Ajax处理相关的视图

kindeditor_upload_file

文件上传视图

其他工具

scaffold_toolkit.modelemailbackend.ModelEmailBackend

以Email作为用户名验证

自动加载admin模块

from scaffold_toolkit.bootstrap import bootstrap,discover_admin_urls
bootstrap()

urls+=discover_admin_urls()

更新记录

2015-5-20

  • 更新zui 到1.3.1