一、制作管理员专属页面
1、管理员类定义,管理员点击跳转
给管理员做一个单的的页面,要把所有管理员拿出来。
在auth py文件中定义一个管理员类:
# 管理员用户
class AdminManger(View):
TEMPLATE = 'dashboard/auth/admin.html'
def get(self, request):
return render_to_response(request, self.TEMPLATE)
然后配置urls
from .views.auth import Login, AdminManger
urlpatterns = [
path('', Index.as_view(), name='dashboard_index'),
path('login', Login.as_view(), name='dashboard_login'),
path('admin/manager', AdminManger.as_view(), name='admin_manager')
]
再在templates/dashboard/auth下新建一个admin.html
然后我们需要对左边栏的管理员按钮框框做一个映射,就是我们点击管理员,右边会出现相应的内容:
我们回到base.html,对管理员加上一个a标签。
因为在mako模板中,没有{% url ’ ’ %} , 不能像这样使用name了,如果想要使用name,可以使用Python的语法:
<%! from django.shortcuts import reverse %>
<li><a href="${reverse('admin_manager')}">管理员</a></li>
这样就可以了。
地址已经渲染过来了。
然后我们在nav.html中也加上跳转:
注意:需要在每个页面下都import,才能使用reverse的。
<%! from django.shortcuts import reverse %>
<a class="navbar-brand" href="${reverse('dashboard_index')}">dashboard</a>
2、在页面右上角显示username
在mako中我们不能直接使用user,但是user是在request中的,所以我们可以从request中获取到user。
我们在base_render中增加一句:result['request'] = request
然后我们在nav.html模板中右上角的用户那里,改成:${request.user}
。
3、注销
现在auth中定义logout
from django.contrib.auth import login, authenticate, logout
class Logout(View):
def get(self, request):
logout(request)
return redirect(reverse('dashboard_login'))
然后把logout注册到urls,path('logout', Logout.as_view(), name='logout'),
在到nav.html,在右上角的用户处,点击可以选择注销。
在注销那里加上:<li><a href="${reverse('logout')}">注销</a></li>
试了一下OK的。
4、展示所有管理员
auth中:
# 管理员用户
class AdminManger(View):
TEMPLATE = 'dashboard/auth/admin.html'
def