表单的简单CMS

django-apollo-forms的Python项目详细描述


###Apollo是在[Morgan&;Morgan]网站(https://www.forthepeople.com/),开发团队构建了许多表单。很多。虽然表单管理的大部分繁重工作都是由hubspot营销平台为我们完成的,但仍有一些重大的差距迫使我们考虑进行切换:


1。成本。我们的hubspot许可证是每年50000美元,其中唯一的实用工具来自表单管理工具。
2。缺乏灵活性。虽然定义基本验证规则和字段布局是可以的,但做任何更复杂的事情(例如电子邮件黑名单、基于地理位置的提交筛选等)都是不可能的。实际上,由于它们切换到react rendered
表单,[hubspot表单中的自定义验证根本不起作用](https://integrate.hubspot.com/t/integration with jquery validator customized validation/1172/9)。
3.缺乏控制。hubspot js库在gzip之前的大小为300kb+,并设置短期缓存过期头。为什么?很难说没有未被告知的消息来源。< BR>![超过300kb](http://static.forthepeople.com/engineering/apollo/big_hubspot.png)
4.缺乏透明度。HubSpot提供了开箱即用的Salesforce同步。然而,拥有高度定制的salesforce org,
我们的hubspot同步过程并不简单。



考虑到这些问题,我们建造了**阿波罗**作为解决方案。

Apollo是一个Django应用程序,它与[iCarus JavaScript库](https://github.com/morgan-and-morgan/iCarus)结合使用,旨在为忙碌的工程师提供即插即用的解决方案。除了提供用于构建
表单字段、设计表单和查看表单提交的管理界面之外,Apollo还假设它不应对宿主应用程序的
特定于域的需求进行假设。因此,它将表单管理与提交处理分离,
将响应主机内事件的工作留给宿主。为了促进这一建筑,阿波罗选择了酒吧/酒吧设计,在关键事件上通知侦听器


*_form submitted
*_form submitted validated
*_form submitted error

请参阅[信号参考](https://morgan and morgan.github.io/apollo/signals)中有关信号的详细信息


为什么阿波罗
1。它是-而且永远是-免费和开源的
2。即插即用体系结构
3。多个用例中的实用程序
4。与本机django权限集成,允许在委派api/form builder访问时分配角色。





"django_filters",
"rest_framework",
"rest_framework_swagger",可选,创建可浏览的api文档
"apollo",

}

###自定义
您可以通过重写settings.py中"apollo"变量的默认值来自定义apollo的行为。以下是此设置中可以控制的参数。

---|"————————————————————————————————————————————————————————————————————————————————————————————————安装在主机应用程序中
builder_u requires_u is staff true|如果为true,则只有具有"is_u staff"权限的用户才能访问表单生成器
download_u requires_u is staff true如果为true,则只有具有"is_u staff"权限的用户才能下载表单提交
api_root|/api服务器上api根目录的路径
api v1阿波罗api版本|
icarus_themes_url//static.forthepeople.com/engineering/icarus/v1.0-latest/themes icarus主题所在位置
提交电子邮件无|从
外部挂钩仅信号真实发送提交通知的电子邮件地址如果为真,则我们不发送webhooks通知,只触发表单的信号设置字段模板。这些定义了字段的默认配置,并且可以基于每个表单重写。< BR>![](http://static.forthepeople.com/engineering/apollo/feature_create_field-min.png)

--


[](http://static.forthepeople.com/engineering/apollo/feature_create_form_step_1-min.png)

--


[](http://static.forthepeople.com/engineering/apollo/feature廑build廑layouts-min.png)


--



使用[icarus javascript库](https://github.com/morgan-and-morgan/icarus)(推荐使用)DIY.

如果您决定继续(2),您将需要查阅可浏览的API,该API安装在`/<;API_root>;/<;API_version>;/docs`以获取有关身份验证、请求格式、
和可用资源的详细信息。

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

推荐PyPI第三方库


热门话题
java如何使用JNA创建同一库的多个实例?   java在将Graphql查询作为JSON字符串传递时收到意外的令牌错误   OAuth2 oltu的java问题   java桌面应用程序使用的好的嵌入式数据库是什么?   java Firebase数据库高级查询选项   java正在使磁盘上的EhCache元素过期   java 安卓还原处于backstack中的片段的实例状态   XMemcached中的java异步集   java TimescaleDB是否使用与Postgresql完全相同的JDBC驱动程序?   java从网站c读取信息#   检查java Android中的字符串是否只包含数字和空格   c#如何向web服务发送特殊字符?   grails无法调用需要java的方法。lang.类参数?   java我在组合框中调用的方法不会运行所有代码,它只运行部分代码   java发送带有标头的HTTP GET请求