美文网首页
类继承 Mixin

类继承 Mixin

作者: 叶田的学习笔记 | 来源:发表于2018-10-17 00:53 被阅读0次

用户登录后,进入后台管理,对课程进行“增删改查”等操作。为避免代码重复,构建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

相关文章

网友评论

      本文标题:类继承 Mixin

      本文链接:https://www.haomeiwen.com/subject/jzakzftx.html