跳转到主要内容

探索Django网站开发客户端的项目

项目描述

Ray的部件交换

Ray的部件交换是一个探索Django网站开发客户端的项目。目的是提供工具、小部件、视图和其他服务,这些服务不适合Django核心,但对于网站开发仍然是必需的。

初始目标

我们旨在提供一组简单的组件,可以轻松集成到Django表单中

  • 日历组件

  • 数值范围组件

  • 时间组件

  • AJAX自动完成组件

  • 调色板

    • 完整的RGB选择

    • 颜色子集选择

长期目标

  • 处理CSS和JavaScript艺术品的压缩和聚合。(注意:Reinout:可能不会,因为应用程序应该只做一件事:压缩/聚合可以由其他应用程序完成)。

  • 客户端输入验证(可能通过Ajax回调?)

安装

Ray的部件交换依赖于django-staticfiles,因为这是目前处理CSS和JavaScript文件的最佳方式。它也可能最终以某种形式出现在Django 1.3中。

  • django-rays的setup.py自动依赖于django-staticfiles,因此安装django-rays会自动引入django-staticfiles。

  • raysstaticfiles添加到您的设置文件的INSTALLED_APPS

Django-staticfiles需要一些样板代码。实际上,Django 1.3应该使得这一点变得不再必要。有关更多信息,请参阅官方django-staticfiles文档,以及一篇博客文章,其中包含更详细的解释和示例片段。

  • 在您使用django-rays的网站上,您需要将一些django-staticfiles的样板代码添加到您的设置文件中

    # Used for django-staticfiles
    STATIC_URL = '/static_media/'
    TEMPLATE_CONTEXT_PROCESSORS = (
        # Default items.
        "django.core.context_processors.auth",
        "django.core.context_processors.debug",
        "django.core.context_processors.i18n",
        "django.core.context_processors.media",
        # Needs to be added for django-staticfiles to allow you to use
        # {{ STATIC_URL }}myapp/my.css in your templates.
        'staticfiles.context_processors.static_url',
        )
  • 并在您的urlconf中,将以下内容添加到urls.py的末尾

    if settings.DEBUG:
        # Add this also to the projects that use this application.
        # It allows django-staticfiles to serve up the /media files
        # in DEBUG mode.
        urlpatterns += patterns('',
            (r'', include('staticfiles.urls')),
        )
  • 在生产环境中,使用build_static管理命令来准备所有静态文件以供apache使用。

CSS/JS的包含是通过使用Django的表单媒体处理来实现的。因此,不要忘记在模板的头部添加您的等效代码。

{{ form.media }}

开发

源代码位于bitbucket上。错误跟踪器也在那里。

对于想要使用buildout的开发者,提供了一个小的buildout.cfg文件,用于设置开发和测试环境。当然,您也可以使用常规的virtualenv/pip设置。

运行python bootstrap.pybin/buildout以初始化buildout环境并获取所有依赖项。现在您可以使用bin/test来检查运行测试。您可以使用bin/django syncdb来设置一个简单的示例项目。现在运行bin/django runserver以启动开发服务器,并将浏览器指向https://:8000/

小部件文档

自动完成

AutocompleteInput小部件将常规文本输入小部件与jQuery UI的自动完成功能连接起来。它目前使用jQuery的自动完成功能与一个提供必要数据的URL(请参阅jQuery的远程数据源演示)连接起来。

该URL应接受一个term GET参数,并返回一个包含字典的JSON列表。字典必须包含“value”和/或“label”键。如果其中一个缺失,另一个将被使用两次。标签是用户可见的字符串,而值是放入表单数据中的值。

您可以将url(只是要调用的URL)或urlname(在urlconf中查找的名称)传递给小部件。

示例用法

from django import forms
from rays.widgets import AutocompleteInput


class AnimalForm(forms.Form):
    name = forms.CharField(
        label=_('Enter animal name'),
        max_length=50,
        widget=AutocompleteInput(urlname='autocomplete-animals'))

日期选择器

DatepickerInput小部件将常规文本输入小部件与jQuery的日期选择器连接起来。

示例用法

from django import forms
from rays.widgets import DatepickerInput


class DatepickerForm(forms.Form):
    start_date = forms.DateField(widget=DatepickerInput())
    end_date = forms.DateField(widget=DatepickerInput(format='%Y.%m.%d'))

贡献者

Ray的小部件交换的主要作者包括

Russell Keith-Magee <russell@keith-magee.com>

Gregory Müllegger <gregor@muellegger.de>

Reinout van Rees http://reinout.vanrees.org

Glen Somerville <glen@syneus.fi>

以下是一个不可避免的不完整的感谢名单——提交补丁、报告错误并使Ray的小部件交换变得更加出色的人们

变更日志

0.0.1(未发布)

  • 添加了自动完成小部件。

  • 添加了日期输入小部件。

  • 添加了jQuery和jQuery UI + CSS和i18n。

  • 添加了django-staticfiles依赖项,因为这是当今处理静态js/css文件的最佳方法。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

django-extrawidgets-1.tar.gz (13.1 kB 查看哈希值)

上传时间 源代码

由以下支持