在django项目中使用jsignature jquery插件

django-jsignature的Python项目详细描述


Django项目中使用jSignature jQuery plugin的简单方法。

它提供:

  • 表单字段和表单小部件,用于通过django表单处理jquery插件;
  • 存储捕获签名的模型字段;
  • 在任意一个Django模型中添加两个字段(签名/签名日期)。
https://travis-ci.org/fle/django-jsignature.png?branch=masterhttps://coveralls.io/repos/fle/django-jsignature/badge.pnghttps://github.com/fle/django-jsignature/blob/master/screen.png

安装

目前:

pip install django-jsignature

用法

  • jsignature添加到INSTALLED_APPS
# settings.py
INSTALLED_APPS = (
...
'jsignature',
)
  • 使用提供的表单域和小部件:
# forms.py
from django import forms
from jsignature.forms import JSignatureField

class SignatureForm(forms.Form):
    signature = JSignatureField()
  • 在您的模板中
{{ form.media }}
<form action="." method="POST">
    {% for field in form %}
        {{ field.label_tag }}
        {{ field }}
    {% endfor %}
    <input type="submit" value="Save"/>
    {% csrf_token %}
</form>
  • 表单验证后呈现图像:
# views.py
from jsignature.utils import draw_signature
from myapp.forms import SignatureForm

def my_view(request):
    form = SignatureForm(request.POST or None)
    if form.is_valid():
        signature = form.cleaned_data.get('signature')
        if signature:
            # as an image
            signature_picture = draw_signature(signature)
            # or as a file
            signature_file_path = draw_signature(signature, as_file=True)

定制

jsignature插件选项在python中可用:

  • 全球范围内,在您的设置中:
# settings.py
JSIGNATURE_WIDTH = 500
JSIGNATURE_HEIGHT = 200
  • 具体来说,以您的形式:
# forms.py
from jsignature.forms import JSignatureField
from jsignature.widgets import JSignatureWidget

JSignatureField(widget=JSignatureWidget(jsignature_attrs={'color': '#CCC'}))

可用设置为:

  • JSIGNATURE_WIDTH(宽度)
  • JSIGNATURE_HEIGHT(高度)
  • JSIGNATURE_COLOR(颜色)
  • JSIGNATURE_BACKGROUND_COLOR(背景色)
  • JSIGNATURE_DECOR_COLOR(花色)
  • JSIGNATURE_LINE_WIDTH(线宽)
  • JSIGNATURE_UNDO_BUTTON(撤消按钮)
  • JSIGNATURE_RESET_BUTTON(重置按钮)

在您的型号中

如果您要存储签名,则提供的MIXIN给出了一个^ {TT11} $和一个^ {TT12}$更新自己:

from django.db import models
from jsignature.mixins import JSignatureFieldsMixin

class JSignatureModel(JSignatureFieldsMixin):
    name = models.CharField()

作者

makinacom

更改日志

0.8(2014-12-04)

**新**

  • 添加对python 3的支持(@gagaro)
  • 添加对django 1.7的支持(@gagaro)

0.7.6(2014-11-26)

**新功能**

  • 已添加显示(或不显示)重置按钮的设置(@jsayles)

**内部变更**

  • 渲染现在基于模板(@andybak)
  • javascript已正确初始化(@andybak)

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

推荐PyPI第三方库


热门话题
java能否使用OpenJPA将一个实体持久化到多个持久化单元?   java如何访问当前按下的键   java singleton是否意味着哈希代码总是返回相同的值?   inputstream无法在Java中同时使用STDIN和STDERR读取程序输出   java运行时有多贵。getRuntime()与获取内存度量相结合   java AndroidStudio ListView适配器更新   java小程序请求未扩展实时会话   java是设置布尔值所必需的关键部分?   java比较两个字符串,并突出显示发现的不匹配项   java带抽屉布局,无论哪个屏幕处于活动状态,如何在按下后退键时关闭应用程序?   爪哇:颜色有什么区别。黑色和彩色。黑色   Velocity模板中子类的java访问方法   java如何快速学习Drools或其他规则引擎   从Java应用程序访问时缓存数据库查询结果   java cassandra nodetool JPLISAgent。c错误   java我正在解析一个没有pubDate的RSS提要,有没有其他方法可以确定一个项目是何时发布的?