【问题标题】:Should I use Django's Admin feature?我应该使用 Django 的管理功能吗?
【发布时间】:2011-11-15 00:01:41
【问题描述】:

我正在构建一个基于 Django 的评论网站,公共用户可以在其中创建网站上的所有内容。用户为给定项目创建评论,他们自己也创建将被评论的项目(提供项目的描述和简要摘要,以及一些标签)。

我的问题是:我是否应该为这个网站使用 Django 的管理功能(例如,向公共用户公开管理控制)?还是我应该坚持使用正常形式?我对 Django 的管理方面不太熟悉,到目前为止我一直在为网站使用表单,但是我看到很多人在谈论 Django 的管理功能,我开始怀疑如果我应该使用它们。

感谢您的任何反馈!

【问题讨论】:

    标签: django django-admin django-forms


    【解决方案1】:

    我不会向普通用户公开管理界面。您可以使用身份验证和用户管理方面(出于您的目的),但通常最好的做法是为用户提供一种单独的方式来管理他们的对象。您也不会冒向用户授予错误权限(或允许他们授予自己的权限)的风险。

    如果您想更好地了解它的功能,请阅读docs

    【讨论】:

      【解决方案2】:

      没有。 django 管理员不适用于任何最终用户。

      django 管理功能旨在帮助网站开发人员,仅此而已。甚至网站管理员的使用也是禁忌,尽管在实践中大多数小型网站都会侥幸成功,因为他们只是在谈论少数人,如果他们遇到麻烦,他们可以亲自联系开发人员。

      出于您的目的,审核项目和创建项目的工作流程是您的应用程序功能集的关键部分。管理员会给你一些想法,但尝试在此基础上构建你的应用程序是错误的。

      【讨论】:

      • Django admin 适用于站点管理员。它可以像任何普通网站后端一样使用,网站管理员可以在其中添加和管理网站。没有地方说文档只适用于“网络开发人员”
      【解决方案3】:

      也许吧。如果管理功能涵盖了您想要提供的大部分功能,那么您没有理由不使用它作为起点。

      django.contrib.admin 与其他应用程序一样,基本上为您的模型提供了一个 CRUD 接口。可以通过组/权限来控制访问,就像您自己编写的应用程序一样。您可以完全访问具有单线的模型,但显然在向其他人开放时必须正确配置。

      另请参阅我的问题 Django AdminSite/ModelAdmin for end users? 和类似的问题Exposing django admin to users. Harmful?How to make Django admin site accessed by non-staff user?

      关于管理员“预期用途”的争论,请注意 Django 在去年年底的安全更新:http://www.djangoproject.com/weblog/2010/dec/22/security/ 关于对象列表中的查询字符串参数。这样的更新(引用:“有权访问管理员的攻击者 [...]”)清楚地表明管理员对权限系统的实施正在不断受到审查。

      【讨论】:

        猜你喜欢
        • 2018-05-26
        • 2019-09-10
        • 1970-01-01
        • 1970-01-01
        • 2011-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多