Angularjs 中的 Django 管理员

Posted

技术标签:

【中文标题】Angularjs 中的 Django 管理员【英文标题】:Django Admin in Angularjs 【发布时间】:2014-08-10 13:56:01 【问题描述】:

我正在将我的 Django 项目前端从使用 jquery 转换为 angularjs 和 Django Rest Framework,以帮助使其成为单页应用程序。我已经用 Angular 转换了大部分棘手的页面,现在与 Django 的管理页面进行了战斗。

我喜欢 Django 的内置管理功能,我的用户每天都在使用它,所以我想尽可能地复制它。我还没有找到任何与此相关的软件包,所以我打算硬着头皮从头开始制作它。在我开始繁琐的过程之前,我想看看其他人是否有过类似的任务,以及他们为完成它做了什么。也许有人知道最好的做法?

我的计划是根据 URL (admin/app/model) 中显示的模型制作一个可重用的控制器,以显示 django-admin 的 change_listchange_form 视图。我是 angularjs 的新手,所以我可能不完全了解做到这一点的最佳方法。

构建完成后,我会将其发布到 githhub。

更新 经过一段时间的工作后,我创建了一个 github 存储库。它仍然很原始,不能 100% 工作。如果您对此感兴趣或想提供帮助,请点击这里:https://github.com/austinhuminski/angular-django-admin

【问题讨论】:

你能完全完成这个吗?我们正在尝试实现相同的目标,但我担心从头开始重建所有 Django 管理功能会花费大量时间。有什么想法吗? 【参考方案1】:

ng-admin 是基于 RESTful web 服务的管理界面的纯 Angular.js 实现。除了基本的 CRUD 之外,它还支持关系、搜索、仪表板和自定义字段类型。

https://github.com/marmelab/ng-admin

它不会复制 Django 管理员,而是尝试在 Bootstrap 和 Angular.js 上构建以获得丰富的客户端管理员体验。

免责声明:我们写的。

【讨论】:

如果您正在寻找 react.js 等价物,请查看 admin-on-rest:github.com/marmelab/admin-on-rest【参考方案2】:

我认为这是个好主意,不久前我也发生了同样的事情,这让我来到了这里!

这是我有兴趣建立自己的东西。我认为这将是一项艰巨的任务,主要挑战之一是在 Angular 中复制 django ModelAdmin 类型的所有功能。并不是说这做不到。

至于建议 - 它必须是一个 TDD 主导的项目,无论是在角度方面还是在 django 方面(幸运的是,这两个项目都非常注重测试)。

对于 django REST 集成,我个人可能会关注 django-tastypie,但主要是因为我熟悉它并且喜欢在其他 django REST 框架上使用它。

总体上听起来是一个绝妙的主意 - 我会和你比赛:)

【讨论】:

很高兴看到我不是唯一感兴趣的人!我已经在这方面做了相当多的工作。我通过后退按钮功能和更新 URL 完成了日期层次结构、分页和过滤。我选择使用 Django Rest Framework,因为我不熟悉 sweetpie。同意它需要进行大量测试,遗憾的是我很懒惰。我会尽快将我的代码上传到 github,这样您就可以看看我目前的成果并可能进行合作。 酷!如果可以的话,我很乐意提供帮助 如果您有兴趣,这里是链接。需要做很多清理工作,但我想我会提早一点。 github.com/austinhuminski/angular-django-admin 将 README 添加到存储库。 很好,看起来很有趣,稍后将其克隆下来并好好看看。我最初的想法是为这个项目继承 admin.AdminSite 的子类,希望可以重复使用常规的 ModelAdmin 类,而无需最终用户进行任何更改。这也将为您提供字段排除和订购的所有设置。不过,我确实喜欢您采用的方法,稍后我会好好看看,看看我是否可以提供帮助

以上是关于Angularjs 中的 Django 管理员的主要内容,如果未能解决你的问题,请参考以下文章

防止访问 AngularJS 中的管理页面

AngularJS 实现管理系统中的增删改查

往返应用程序中的 AngularJS

如何为不同的项目版本和管理 angularjs 组件

Django中的假管理员登录页面

管理员中的 Django 自定义用户模型应用程序级别权限管理