Django - admin后台auth权限
Posted quanquan616
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django - admin后台auth权限相关的知识,希望对你有一定的参考价值。
admin后台篇
一、创建一个管理员用户
(1).设置时区、语言(可选步骤)
打开settings.py,改成下面那样
LANGUAGE_CODE = ‘zh-Hans‘ TIME_ZONE = ‘Asia/Shanghai‘
(2).执行命令python manage.py createsuperuser
(3).按提示输入用户名、邮箱、密码(密码至少需要8位)
(4).启动服务,访问 127.0.0.1:8000/admin 即可进入站点管理
二、向admin注册模型
#----------admin.py--------- from django.contrib import admin # Register your models here. from .models import Department,Student,Course admin.site.register(Department) admin.site.register(Student) admin.site.register(Course)
三、自定义管理页面
Django提供了admin.ModelAdmin类通过定义ModelAdmin的子类,来定义模型在Admin界面的显示方式
(一).列表页属性
(1).list_display:显示字段,可以点击列头进行排序
(2).list_filter:过滤字段,过滤框会出现在右侧
(3).search_fields:搜索字段,搜索框会出现在上侧
(4).list_per_page:分页,分页框会出现在下侧
(二).示例
(1).先写好模型
#-----models.py------ class Department(models.Model): d_id = models.AutoField(primary_key=True) d_name = models.CharField(max_length=30) def __str__(self): return ‘Department<d_id=%s,d_name=%s>‘%( self.d_id,self.d_name ) class Student(models.Model): s_id = models.AutoField(primary_key=True) s_name = models.CharField(max_length=30) department = models.ForeignKey(‘Department‘) course = models.ManyToManyField(‘Course‘) def __str__(self): return ‘Student<s_id=%s,s_name=%s>‘%( self.s_id,self.s_name ) class Course(models.Model): c_id = models.AutoField(primary_key=True) c_name = models.CharField(max_length=30) def __str__(self): return ‘Course<c_id=%s,c_name=%s>‘%( self.c_id,self.c_name )
(2).在该模型的app中的admin.py
# -----------admin.py-------- from django.contrib import admin # Register your models here. from .models import Department,Student,Course class DepartmentAdimin(admin.ModelAdmin): list_display = [‘d_id‘,‘d_name‘] list_display_links = [‘d_id‘,‘d_name‘] list_filter = [‘d_id‘] search_fields = [‘d_name‘] class StudentAdimin(admin.ModelAdmin): list_display = [‘s_id‘,‘s_name‘] list_display_links = [‘s_id‘,‘s_name‘] class CourseAdmin(admin.ModelAdmin): list_display = [‘c_id‘,‘c_name‘] list_display_links = [‘c_id‘,‘c_name‘] list_per_page = 5 admin.site.register(Department,DepartmentAdimin) admin.site.register(Student,StudentAdimin) admin.site.register(Course,CourseAdmin)
auth权限篇
一、使用视图方式创建一个超级用户
from django.contrib.auth.models import User User.objects.create_user(username="yyyyyy",password="yyyyyy",email="[email protected]")
二、验证用户
不需要再用之前的filter().first()方式了,直接用django封装好的方法
from django.contrib.auth import authenticate user = authenticate(username=username,password=password)
以上是关于Django - admin后台auth权限的主要内容,如果未能解决你的问题,请参考以下文章