【问题标题】:How to show admin specific information on my Django website?如何在我的 Django 网站上显示管理员特定信息?
【发布时间】:2020-06-03 12:38:42
【问题描述】:

我目前正在使用 Django 构建医院管理系统,但遇到了问题。在这个网站上,管理员将注册他们各自的医院,管理他们的医生、病人等。但是,我不希望一个医院的管理员看到他们医院的医生或病人的信息。那么如何确保管理员只看到自己医院的数据,而看不到其他医院的数据。为此,我可以对模型进行哪些更改?

【问题讨论】:

标签: django django-models


【解决方案1】:

如果你问的是使用 Django Admin 模块,我想你迟早会发现你需要在 Django Admin 之外做这个,它很强大,但它有它自己的局限性。这是一个方便的工具,对于您自己的管理工作来说绰绰有余,但它并不打算(我相信)被许多管理员用于他们的常规工作。

也就是说,您必须决定如何在应用中处理分离。这不是一件容易的事,您需要采取额外的预防措施将它们之间的东西分开。一种解决方案是为不同的医院提供单独的数据库,另一种解决方案是在同一个数据库中以编程方式分离数据。这完全由您决定。

【讨论】:

  • 我实际上是在内置 django 管理员的外部执行此操作。但是,如何以编程方式分离数据?我的意思是我需要使用查询集或类似的东西吗?
  • 我在每个需要分离的模型中使用额外的字段,如果字段不存在的话。例如,如果它是由医院分隔的,那么您需要将可能是 ForeignKey 到医院模型的野战医院添加到所有需要分隔的模型中。然后,您需要将此字段添加到所有查询集中,以便每个管理员仅将使用此字段设置的记录获取到他的医院。需要一点额外的编程,但这是一种可能的方法。
猜你喜欢
  • 2014-05-16
  • 2011-11-07
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
相关资源
最近更新 更多