zoukankan      html  css  js  c++  java
  • 32、Django实战第32天:我的收藏

    我的收藏有3个页面:课程机构,授课教师,公开课程

    课程机构

     1、编辑usercenter-fav-org.html继承usercenter-base.html

    2、编辑users.views.py

    ...
    from operation.models import UserFavorite
    
    
    class MyFavOrgView(LoginRequiredMixin, View):
        def get(self, request):
            user_orgs = UserFavorite.objects.filter(user=request.user, fav_type=2)
            org_ids = [user_org.fav_id for user_org in user_orgs]
            orgs = CourseOrg.objects.filter(id__in=org_ids)
    
            return render(request, 'usercenter-fav-org.html', {
                'orgs': orgs,
            })
    

    3、编辑users.urls.py

    ...
    from .views import MyFavOrgView
    
    
    urlpatterns = [
        ...
        url(r'myfav_org/$', MyFavOrgView.as_view(), name='myfav_org'),
    ]
    

    4、编辑usercenter-base.html修改导航链接

    5、编辑usercenter-fav-org.html数据动态展示

    授课教师

    1、编辑usercenter-fav-teacher.html继承usercenter-base.html

    2、编辑users.views.py

    ...
    from organization.models import Teacher
    
    class MyFavTeacherView(View):
        def get(self, request):
            fav_teachers = UserFavorite.objects.filter(user=request.user, fav_type=3)
            teacher_ids = [fav_teacher.fav_id for fav_teacher in fav_teachers]
            teachers = Teacher.objects.filter(id__in=teacher_ids)
    
            return render(request, 'usercenter-fav-teacher.html',{
                'teachers': teachers,
            })
    

    3、编辑users.urls.py

    ...
    from .views import  MyFavTeacherView
    
    
    urlpatterns = [
       ...
        url(r'myfav_teacher/$', MyFavTeacherView.as_view(), name='myfav_teacher'),
    ]
    

    4、编辑usercenter-fav-teacher.html和usercenter-fav-org.html修改导航链接

    5、编辑usercenter-fav-teacher.html动态数据展示

    公开课程

    1、编辑usercenter-fav-course.html,继承usercenter-base.html

    2、users.views.py

    class MyFavCourseView(LoginRequiredMixin, View):
        def get(self, request):
            fav_courses = UserFavorite.objects.filter(user=request.user, fav_type=1)
            course_ids = [fav_course.fav_id for fav_course in fav_courses]
            courses = Course.objects.filter(id__in=course_ids)
            return render(request, 'usercenter-fav-course.html', {
                'courses': courses,
            })
    

    3、编辑users.urls.py

    ...
    from .views import  MyFavCourseView
    
    
    urlpatterns = [
        ...
        url(r'myfav_course/$', MyFavCourseView.as_view(), name='myfav_course'),
    ]
    

    4、编辑usercenter-fav-course.html

    删除收藏

    这个功能可以直接调用我们之前写的皆苦

    修改usercenter-fav-org.html

    修改usercenter-fav-teacher.html

    修改usercenter-fav-course.html

    编辑usercenter-base.html

    <script type="text/javascript">
        $('.jsDeleteFav_course').on('click', function(){
            var _this = $(this),
                favid = _this.attr('data-favid');
            alert(favid)
            $.ajax({
                    cache: false,
                    type: "POST",
                    url: "{% url 'org:add_fav' %}",
                    data: {
                        fav_type: 1,
                        fav_id: favid,
                        csrfmiddlewaretoken: '{{ csrf_token }}'
                    },
                    async: true,
                    success: function(data) {
                        Dml.fun.winReload();
                    }
                });
        });
    
        $('.jsDeleteFav_teacher').on('click', function(){
                var _this = $(this),
                    favid = _this.attr('data-favid');
                $.ajax({
                        cache: false,
                        type: "POST",
                        url: "{% url 'org:add_fav' %}",
                        data: {
                            fav_type: 3,
                            fav_id: favid,
                            csrfmiddlewaretoken: '{{ csrf_token }}'
                        },
                        async: true,
                        success: function(data) {
                            Dml.fun.winReload();
                        }
                    });
            });
    
    
        $('.jsDeleteFav_org').on('click', function(){
                var _this = $(this),
                    favid = _this.attr('data-favid');
                $.ajax({
                        cache: false,
                        type: "POST",
                        url: "{% url 'org:add_fav' %}",
                        data: {
                            fav_type: 2,
                            fav_id: favid,
                            csrfmiddlewaretoken: '{{ csrf_token }}'
                        },
                        async: true,
                        success: function(data) {
                            Dml.fun.winReload();
                        }
                    });
            });
    </script>
  • 相关阅读:
    C++STL之vector用法总结
    [ZOJ 4016] Mergable Stack
    [ZOJ 4024] Peak
    关于C++中ios::sync_with_stdio(false)
    [CodeForces 567C] Geometric Progression
    [CodeForce 450A] Jzzhu and Children
    c++的动态绑定和静态绑定及多态的实现原理(摘)
    C++创建对象的3种方式(转载)
    C++虚函数与纯虚函数用法与区别
    C++深入理解虚函数
  • 原文地址:https://www.cnblogs.com/sellsa/p/8658806.html
Copyright © 2011-2022 走看看