为普通用户复制django admin

时间:2018-08-07 12:27:41

标签: django

我想为普通用户(而非工作人员)复制django admin及其功能。因此,我所拥有的数据模型将显示在django admin之类的表格中,每列具有过滤器和排序方式。甚至外观(模板)也将相同或相似。登录和注册也应该相同。我该如何复制这些内容而无需从头开始做所有事情,制作视图,模板等?

1 个答案:

答案 0 :(得分:0)

Django管理员仅限is_staff = True的用户。

最好在常规Django视图中创建一个页面并创建所需的行为,例如,使该页面或多个页面需要登录。

有几种方法可以完成此操作:

1个网址:

from django.contrib.auth.decorators import login_required

urlpatterns = [
    path('is_loggedin/', login_required(GenericTestView.as_view())),
]

2个基于函数的视图上的装饰器:

from django.contrib.auth.decorators import login_required

@login_required
def restricted_view(request):
    return render(request, 'template.html', {})

3个登录混合用于基于类的视图:

from django.contrib.auth.mixins import LoginRequiredMixin

class GenericTestView(LoginRequiredMixin, TemplateView):
    template_name = 'template.html'
    login_url = '/login/'
    redirect_field_name = '/home/'