我对Django很新,从未开发过它。
我正在尝试开发一个只对经过身份验证的用户公开的功能的网站(典型的企业事情:对于这个讨论,让我们说它是一个私人博客平台)。
我正在寻找的功能是:
正如我所看到的,这本质上是一个带访问控制的CRUD应用程序,而admin应用程序似乎内置了很多这样的功能。是否可以单独使用管理应用程序开发这个完整的应用程序(不是作为原型,作为发布质量的解决方案),还是应该超越(通用视图?ModelForms?)
我正在尝试估计需要花多长时间(学习+实施),所以除了教我这个新的Django世界之外,你的反馈可以给我一个好主意:)
编辑:具体来说,我担心的一个是每个对象/每行权限。 django wiki说权限系统不支持,所以我仍然可以使用管理员应用程序吗?
答案 0 :(得分:2)
<强>修即可。直到你想要每个对象的权限,答案是肯定的。
只要您想要博客上的博客只是一行的权限,您就必须进行一些编码。
您可以完全重用管理界面元素。你拥有所有的资源,你可以阅读。
您想要的大部分内容都是围绕管理功能使用“包装”。
您编写了一个“包装器”视图函数来检查对象权限。
您的包装器视图函数调用管理视图函数。
之后,您需要修改管理页面中的样式表,使其成为您首选的外观。
答案 1 :(得分:0)
对于admin中的行级权限,在Django的SVN版本中,您可以覆盖has_add_permission
对象上的has_change_permission
,has_delete_permission
和ModelAdmin
方法以适用于整个管理员的方式自己实现自定义权限逻辑。我很确定这个功能将在今年的1.2版本中出现。它似乎还没有在文档中,但是如果你能在Django源的django/contrib/admin/options.py
文件中找到默认方法,那么文档字符串中就会有完整的说明。
我不建议在管理员中执行整个应用程序。它适用于人们撰写帖子和创建博客的应用程序部分,但管理员不适合仅显示数据,除非您编写大量自定义代码。编写可以在Django中显示对象和提交注释的视图并不是很难 - 大部分工作都在模板中。
答案 2 :(得分:0)
作为一种意义,你真的不应该在Django-Admin上建立一个潜在的大型项目。这有点愚蠢,很多人都对Django-Admin着迷,他们在书中有一章关于何时何时不用它来做恶。
在我看来,对于所有的黑客行为,你必须做的是让管理员在个性化方面看起来像一个合理的网站,你不妨把周末关掉,实际上学习你想要的工具bastardize,并建立一个真正的网站。你所描述的在逻辑上无论如何都不会是英雄。
这个场景让我想起了旧的加菲猫卡通片,那个家伙给猫买了一张非常昂贵且看起来很棒的床,然后猫选择睡在床上的盒子里。