【问题标题】:Django Admin Page on Deployment部署中的 Django 管理页面
【发布时间】:2020-01-29 08:58:43
【问题描述】:

我目前正在学习使用 Django 进行 Web 开发,我曾想过但似乎无法找到解决方案,即如何使 Web 应用程序的管理页面可供开发人员访问,但不能供应用程序用户访问虽然它托管在 Azure 或 AWS 之类的东西上。

这个想法是有一个管理页面,这样开发人员可以看到正在发生的事情并管理需要管理的内容,但不允许客户端访问管理界面的登录页面。

【问题讨论】:

  • 您可以为管理类的特定用户添加验证
  • 类似这样的东西 username = form.cleaned_data.get("username") password = form.cleaned_data.get("password") user = authenticate(username=username, password=password) if user. id == 22:登录(请求,用户)
  • @luiz 你可以为开发者设置is_staff=True
  • 根据您要管理的内容,您还可以修改标准管理页面 - 如果您需要更多管理选项,您可以创建具有不同权限的自定义用户模型,然后使用 user.is_staff 或检查这些权限is_admin 或使用装饰器(我更喜欢该解决方案,因为它看起来更干净,并且像手动检查 is_staff - stackoverflow.com/questions/5833184/…

标签: django


【解决方案1】:

只有设置了 is_admin 标志的用户才能登录到管理员 - https://docs.djangoproject.com/en/2.2/ref/contrib/auth/#django.contrib.auth.models.User.is_staff。此外,您可能希望将管理 url 从默认 /admin 更改为其他内容,以便只有知道确切 url 的人才能访问管理登录页面。像这样:

# urls.py

urlpatterns = [
    path('some-url-that-is-hard-to-guess/', admin.site.urls),
    ...
]

UPD

更改管理员 URL 是一个推荐措施。如果您想要更多,请查看,例如 - https://opensource.com/article/18/1/10-tips-making-django-admin-more-secure

【讨论】:

  • 这更符合我的想法。只有一个非常困难的 url 路径,人们无法猜测管理 url,这是标准做法吗?
  • 这是推荐的措施之一。如果您想要更多,请查看,例如 - opensource.com/article/18/1/…
  • 谢谢!这正是我一直在寻找的:)
猜你喜欢
  • 1970-01-01
  • 2022-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 2011-07-24
  • 2018-09-15
相关资源
最近更新 更多