跳转到主要内容

模块,可轻松配置外部Django应用程序。

项目描述

django-easyconfig nlshield

此应用程序将使自定义使用它的外部Django应用程序变得容易。

它采用了一种与旧的django.contrib.comments(现在为django-comments)框架非常相似的方法。它使使用自定义表单、值等变得容易。

快速示例…

假设您有一个开源的Django应用程序,允许您上传照片和一些元数据到该照片。为了能够自定义此表单,项目所有者必须修改应用程序的源代码以适应其需求(类名等),或者您必须使您的应用程序可定制。这就是django-easyconfig发挥作用的地方…

安装

基本安装

$ python setup.py build $ sudo python setup.py install

替代安装(手动)

将webutils目录放置在您的Python路径中。要么在您的Python安装的site-packages目录中,要么设置您的$PYTHONPATH环境变量以包括包含webutils目录的目录。

使用

  • XXX * 这些文档不是很好。我会尽快更新它们!

您必须在您的应用程序中创建一个“Config”对象,并使用它来获取您想要自定义的任何对象或值。

这里有一个基本的示例。

### yourapp/config.py

from easyconfig import EasyConfig
from django.contrib.auth.forms import AuthenticationForm
from yourapp.forms import PasswordChangeForm


class Config(object):
    ''' Base config class to easily pass forms, etc. to
        yourapp views.
    '''
    # Use the dotted Python path to this class
    config = EasyConfig('yourapp.config.Config', 'YOURAPP_CONFIG')

    def get_login_form(self):
        return self.config.get_object('get_login_form', AuthenticationForm)

    def get_password_change_form(self):
        return self.config.get_object('get_password_change_form', PasswordChangeForm)

现在,您只需在需要使用这些对象时使用您的yourapp.Config类。

这里是如何在urls.py文件中使用它的示例

### urls.py

from django.conf.urls import url
from yourapp import views
from yourapp.config import Config


config = Config()

urlpatterns = [
    url(r'^login/$',
        views.login, {
            'template_name': 'yourapp/login.html',
            'authentication_form': config.get_login_form(),
        }, name='yourapp-login'),
    url(r'^passwd_change/$',
        views.passwd_change, {
            'template_name': 'yourapp/passwd_change.html',
            'passwd_change_form': config.get_password_change_form(),
        }, name='yourapp-passwd-change'),
]

现在,任何在自己的项目中使用您的应用的人都可以轻松地将登录和密码更改表单更改为他们想要的任何形式。以下是在他们的项目中这样做的方法。

### settings.py

# Dotted python path to their own CustomConfig class
YOURAPP_CONFIG = 'myproject.myapp.config.CustomConfig'

### myproject/myapp/config.py

from myproject.myapp.forms import AuthForm, ChangeForm


class CustomConfig(object):
    ''' Customize the forms!
    '''
    def get_login_form(self):
        return AuthForm

    def get_password_change_form(self):
        return ChangeForm

就是这样。简单吧? :)

商业支持

此软件以及许多类似软件已被构建以支持Netlandish的许多自有项目以及我们的客户的项目的开发。我们很乐意帮助您进行下一个项目,所以请通过给我们发邮件到 hello@netlandish.com 来联系。

项目详情


下载文件

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

源分布

django-easyconfig-0.3.tar.gz (4.6 kB 查看哈希值)

上传时间

由...

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面