【问题标题】:create separate Django admin panel创建单独的 Django 管理面板
【发布时间】:2018-01-30 15:13:10
【问题描述】:

经过数小时的研究,我找不到问题的答案!
是否可以在 Django 中创建完全独立的管理面板?

身份验证如何在 Django 上工作?!例如在用户控制面板上
如何控制会话并让用户登录面板等

使用像 Mongodb 这样的 NOSQL DB 作为 Django 后端的正确方法是什么?

【问题讨论】:

    标签: python django session authentication django-admin


    【解决方案1】:

    我建议您使用tutorial 并通过Django documentation。它非常广泛,涵盖了您的问题。但这需要几个小时以上。

    以下是一些帮助您入门的提示:

    • 是的,您可以编写自己的管理面板。如果您不想使用内置管理员,您可以简单地编写一个经过身份验证的用户可以添加和编辑内容的后端。您只需手动实现身份验证系统,并使此后端中的所有页面仅可供注册用户访问。参考:

    Authentication in Django

    只需构建一个身份验证表单,然后在您的视图中执行以下操作:

    def login(request):
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('/admin')
        else:
            return render(request, 'accounts/login')
    

    然后在您的视图中,您只需添加login_required decorator 即可保护页面:

    @login_required
    def index(request):
        articles = Article.objects.order_by('name')
        context = { 'aarticles' : articles }
        return render(request, 'admin/homepage.html', context)
    

    这里有一个video tutorial,关于如何让用户登录。

    要使用 MongoDB,有几个选项。您可以使用Djongo,它是一个“Django 和 MongoDB 连接器”,允许您像使用任何其他数据库系统一样使用 MongoDB。或者,您可以关注this tutorial,但是如果您像这样集成 MongoDB,您将失去常规的管理面板(也许这就是您想知道如何去做的原因)。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      相关资源
      最近更新 更多