用户登录后,进入后台管理,对课程进行“增删改查”等操作。为避免代码重复,构建Mixin类。
views.py
from .models import Course
from braces.views import LoginRequiredMixin
from django.views.generic.list import ListView
# 创建 UserMixin类,表示这个类将用于后面的类中,而不是作为视图使用
class UserMixin(object):
def get_queryset(self):
qs = super(UserMixin, self).get_queryset()
return qs.filter(user=self.request.user)
# 只有登录用户才能看到自己的课程标题列表,需要用到django-braces
class UserCourseMixin(UserMixin,LoginRequiredMixin):
model = Course
login_url = '/account/login/'
# 注意顺序,一般Mixin类放在左边,其他类放后边
class ManageCourseListView(UserCourseMixin,ListView):
context_object_name = 'courses'
template_name = 'course/manage/manage_course_list.html'
django-braces
django-braces是第三方应用,里面包含了一些Django开发中常用的Mixin
安装:
sudo pip install django-braces
导入:
from braces.views import LoginRequiredMixin
网友评论