示例#1
1
def collection(request, collection_id):
    collection = get_object_or_404(Collection, pk=collection_id)
    if not can_view_collection(request.user, collection):
        raise PermissionDenied

    if request.GET.get('all', '') == 'on':
        card_list = Card.objects.all()
    else:
        card_list = Card.objects.filter(editions__collection__id=collection_id)
    card_list, ferrors = _filter_cards(request, card_list)

    paginator = Paginator(card_list, 30, request=request)

    page = request.GET.get('page', 1)
    try:
        entries = paginator.page(page)
    except PageNotAnInteger:
        entries = paginator.page(1)
    except EmptyPage:
        entries = paginator.page(paginator.num_pages)

    entries.object_list = [(*card.get_count_in_collection(collection_id),
                            card) for card in entries.object_list]

    layout = request.GET.get('layout', 'list')
    if layout not in ['list', 'grid']:
        layout = 'list'

    return render(request, 'cardbox/collection.html', {
        'collection': collection,
        'entries': entries,
        'get': request.GET,
        'layout': layout,
        'ferrors': ferrors,
    })
示例#2
0
    def get(self, request, *args, **kwargs):
        self.page = kwargs.get('page', 1)
        self.current_tag = kwargs.get('tag', '')

        if self.current_tag != '':
            self.filter_tags.append(self.current_tag)
            self.pictures = self.pictures.filter(
                picture_tag__name=self.current_tag)

        #set the tags
        self.get_tags()

        # set up paginator
        paginator = Paginator(self.pictures, self.picture_per_page)
        try:
            self.pictures = paginator.page(self.page)
        except PageNotAnInteger:
            self.pictures = paginator.page(1)
        except EmptyPage:
            self.pictures = paginator.page(paginator.num_pages)

        if request.is_ajax():
            response = self.get_ajax()
        else:
            response = self.render_to_response({
                'pictures': self.pictures,
                'tags': self.tags,
                'active_tag_count': self.active_tag_count,
                'current_tag': self.current_tag,
            })

        return response
示例#3
0
文件: views.py 项目: grigi/gametome
def album_detail(request, slug):
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1

    album = Album.objects.public().get(slug=slug)
    album_list = album.children.all()
    paginator = Paginator(album_list, RESULTS_PER_PAGE)
    try:
        album_list = paginator.page(page)
    except EmptyPage:
        album_list = paginator.page(paginator.num_pages)
        
    picture_list = album.ordered_pictures.all()
    paginator = Paginator(picture_list, RESULTS_PER_PAGE)
    try:
        picture_list = paginator.page(page)
    except EmptyPage:
        picture_list = paginator.page(paginator.num_pages)

    return render(request, 'gallery/album_detail.html', {
        'object': album,
        'album_list': album_list,
        'picture_list': picture_list,
    })
示例#4
0
def get_discussion(request, discussion_id=None):
    discussion = get_object_or_404(Discussion, id=discussion_id)

    from itertools import chain
    comments = list(chain([discussion], discussion.comments.all()))

    try:
        page = request.GET.get('side', 1)
    except PageNotAnInteger:
        page = 1

    p = Paginator(comments, per_page=10, orphans=3, request=request)

    try:
        comments = p.page(page)
    except EmptyPage:
        comments = p.page(1)

    variables = {
        'pagetitle': discussion.title,
        'discussion': get_object_or_404(Discussion, id=discussion_id),
        'comments': comments,
        'form': CommentForm(),
    }

    return render(request, 'discussion.html', variables)
示例#5
0
文件: views.py 项目: Sult/evehub
def character_journal(request):
    character = get_object_or_404(CharacterApi, pk=request.session['charpk'])
    if not character.api.access_to("WalletJournal"):
        return HttpResponseRedirect(reverse("characters"))

    all_transactions = character.wallet_journal()
    filter_form = FilterJournalForm(
        request.POST or None, characterapi=character
    )

    paginator = Paginator(
        all_transactions,
        50, request=request
    )
    page = request.GET.get('page', 1)
    try:
        transactions = paginator.page(page)
    except PageNotAnInteger:
        transactions = paginator.page(1)
    except EmptyPage:
        transactions = paginator.page(paginator.num_pages)

    chart_list = CharacterJournal.monthly_balance(character)

    return render(
        request,
        "characters/wallet_journal.html",
        {
            "character": character,
            "transactions": transactions,
            "chart_list": chart_list,
            "filter_form": filter_form,
        }
    )
示例#6
0
def html_export(request, username, id_string):

    limit = request.REQUEST.get('limit', 100)

    cursor = get_instances_for_user_and_form(username, id_string)
    paginator = Paginator(cursor, limit, request=request)

    try:
        page = paginator.page(request.REQUEST.get('page', 1))
    except (EmptyPage, PageNotAnInteger):
        try:
            page = paginator.page(1)
        except (EmptyPage, PageNotAnInteger):
            page = None

    context = {
        'page': page,
        'table': []
    }

    if page:
        data = [("v1", page.object_list)]
        export = build_export(request, username, id_string)
        context['table'] = mark_safe("\n".join(export.to_html(data)))
        context['title'] = id_string

    return render(request, 'export/export_html.html', context)
示例#7
0
def home(request, template_name = 'main.html'):
	res_post = False
	try:
		if len(request.session['posts']) > 0:
			res_post = True
	except:
		res_post = False
	try:
		ind_list = Indicator.objects.order_by('Description')
	except Indicator.DoesNotExist:
		ind_list = True

	if not ind_list == True:
		paginator = Paginator(ind_list, 20)
		page = request.POST.get('page',1)
		try:
			indicators = paginator.page(page)
		except PageNotAnInteger:
			# If page is not an integer, deliver first page.
			indicators = paginator.page(1)
		except EmptyPage:
			# If page is out of range (e.g. 9999), deliver last page of results.
			indicators = paginator.page(paginator.num_pages)
		args = {}
		args.update(csrf(request))
		args['indicators'] = indicators
		args['res_post'] = res_post
		return render(request, template_name, args)
	else:
		posts = [{'page':'1'}]
		args = {}
		args.update(csrf(request))
		args['all_posts'] = posts
		args['res_post'] = res_post
		return render(request, template_name, args)
示例#8
0
def get_number_paginator(queryset, page=1, per_page=10):
    paginator = Paginator(queryset, per_page)

    try:
        page = int(page)
    except PageNotAnInteger:
        page = 1

    try:
        paged_queryset = paginator.page(page)
    except (InvalidPage):
        paged_queryset = paginator.page(1)

    return paged_queryset
示例#9
0
文件: views.py 项目: grigi/gametome
def album_list(request):
    album_list = Album.objects.public_root_nodes()
    paginator = Paginator(album_list, RESULTS_PER_PAGE)
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1
    try:
        album_list = paginator.page(page)
    except EmptyPage:
        album_list = paginator.page(paginator.num_pages)
            
    return render(request, 'gallery/album_list.html', {
        'object_list': album_list,
    })
示例#10
0
def index(request):
    card_list = Card.objects.all()
    paginator = Paginator(card_list, 50, request=request)

    page = request.GET.get('page', 1)
    try:
        cards = paginator.page(page)
    except PageNotAnInteger:
        cards = paginator.page(1)
    except EmptyPage:
        cards = paginator.page(paginator.num_pages)

    return render(request, 'cardbox/index.html', {
        'cards': cards,
    })
示例#11
0
 def get(self, request, *args, **kwargs):
     self.object_list = request.user.tasks.order_by('-date_created',
                                                    'parent')
     paginator = Paginator(self.object_list, self.paginate_by,
                           request=request)
     try:
         tasks = paginator.page(request.GET.get('page', 1))
     except PageNotAnInteger:
         tasks = paginator.page(1)
     except EmptyPage:
         raise Http404
     context = self.get_context_data(tasks=tasks.object_list,
                                     task_statuses=TaskStatus,
                                     page_obj=tasks)
     return self.render_to_response(context)
示例#12
0
def licitacoes_lista(request, modalidade=None, ano=None):

    if modalidade:
        try:
            page = request.GET.get('page', 1)

        except PageNotAnInteger:
            page = 1
        try:
            site = Site.objects.get(domain=request.get_host())
            modalidade = modalidade

            if not ano:
                ano = str(timezone.now().year)

            objects = Licitacao.publicados.filter(sites__id__exact=site.id, modalidade=modalidade,
                                                  data_publicacao__year=ano)
            paginator = Paginator(objects, request=request, per_page=25)
            licitacoes = paginator.page(page)

        except Site.DoesNotExist, Licitacao.DoesNotExist:
            raise Http404

        anos = Licitacao.publicados.filter().datetimes('data_publicacao', 'year', order='DESC')

        return render(request, 'conteudo/licitacoes_lista.html', {'licitacoes': licitacoes, 'anos': anos, 'ano': ano,
                                                                  'modalidade': modalidade})
示例#13
0
    def post(self, request, *args, **kwargs):
        self.filter_pictures(request)
        paginator = Paginator(self.pictures, self.picture_per_page)
        self.page = kwargs.get('page')

        #set the tags
        self.get_tags()

        try:
            self.pictures = paginator.page(self.page)
        except PageNotAnInteger:
            self.pictures = paginator.page(1)
        except EmptyPage:
            self.pictures = paginator.page(paginator.num_pages)

        return self.get_ajax()
示例#14
0
    def get(self, request):
        all_courses = Course.objects.all().order_by('-add_time')
        hot_courses = Course.objects.all().order_by('-click_nums')[:3]

        #课程搜索
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            all_courses = all_courses.filter(
                Q(name__icontains=search_keywords) |
                Q(desc__icontains=search_keywords) |
                Q(detail__icontains=search_keywords)
            )

        # 课程排序
        sort = request.GET.get('sort', '')
        if sort == 'students':
            all_courses = all_courses.order_by('-students')
        elif sort == 'hot':
            all_courses = all_courses.order_by('-click_nums')

        # 对课程进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_courses, 3, request=request)
        courses = p.page(page)

        return render(request, 'course-list.html', {
            'all_courses': courses,
            'hot_courses': hot_courses,
            'sort': sort,
        })
示例#15
0
    def get(self, request):
        all_blog = Blog.objects.all().order_by('-id')
        # 博客、标签、分类数目统计
        count_nums = Counts.objects.get(id=1)
        blog_nums = count_nums.blog_nums
        cate_nums = count_nums.category_nums
        tag_nums = count_nums.tag_nums
        count_nums.save()

        for blog in all_blog:
            blog.content = markdown.markdown(blog.content)

        # 分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_blog, 5, request=request)
        all_blog = p.page(page)
        return render(request, 'index.html', {
            'all_blog': all_blog,
            'blog_nums': blog_nums,
            'cate_nums': cate_nums,
            'tag_nums': tag_nums,
        })
示例#16
0
    def get(self, request, tag_name):
        tag = get_object_or_404(Tag, name=tag_name)
        tag_blogs = tag.blog_set.all()
        # 博客、标签、分类数目统计
        count_nums = Counts.objects.get(id=1)
        blog_nums = count_nums.blog_nums
        cate_nums = count_nums.category_nums
        tag_nums = count_nums.tag_nums

        # 分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(tag_blogs, 5, request=request)
        tag_blogs = p.page(page)
        return render(request, 'tag-detail.html', {
            'tag_blogs': tag_blogs,
            'tag_name': tag_name,
            'blog_nums': blog_nums,
            'cate_nums': cate_nums,
            'tag_nums': tag_nums,

        })
示例#17
0
    def get(self, request):
        all_teachers = Teacher.objects.all()
        sorted_teacher = Teacher.objects.all().order_by('-click_nums')[:3]

        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            all_teachers = all_teachers.filter(
                Q(name__icontains=search_keywords) |
                Q(work_company__icontains=search_keywords) |
                Q(work_position__icontains=search_keywords)
            )
        sort = request.GET.get('sort', '')
        if sort == 'hot':
            all_teachers = all_teachers.order_by('-click_nums')

        # 对讲师进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_teachers, 2, request=request)
        teachers = p.page(page)

        return render(request, 'teachers-list.html', {
            'all_teachers': teachers,
            'sorted_teacher': sorted_teacher,
            'sort': sort,
        })
示例#18
0
def index(request):
  preferred_language = translation.get_language()
  collator = Collator.createInstance(Locale(preferred_language))
  if request.GET.get('aspect'):
    aspect = request.GET['aspect']

  else:
    aspect = 'Collection'

  try:
    aspect_uri = ROUTABLES[aspect]
  except KeyError:
    aspect_uri = ROUTABLES['Collection']

  this_results = []
  for res in graph.subjects(RDF.type, aspect_uri):
    r = Resource(graph,res)
    if Resource(graph,UNBIST.PlaceName) in list(r[RDF.type]):
      continue
    res_label = get_preferred_label(res,preferred_language)
    this_results.append({'uri': res, 'pref_label':res_label})
  #sorted_results =  sorted(this_results, key=lambda tup: tup['pref_label'], cmp=collator.compare)
  sorted_results =  sorted(this_results, key=lambda tup: tup['pref_label'])

  try:
    page = request.GET.get('page',1)
  except PageNotAnInteger:
    page = 1

  p = Paginator(sorted_results, 20, request=request)
  paginated_results = p.page(page)

  return render(request, 'thesaurus/index.html', {'results': paginated_results, 'target': 'instances', 'aspect':aspect })
示例#19
0
def generic_list_view(request, blog_slug=None, category_slug=None):

	feeds = Feed.objects.all()
	feedextras = FeedExtra.objects.all()

	if blog_slug:
		this_feedextra = feedextras.filter(slug=blog_slug).first()
		feed_pk = this_feedextra.feed.pk
		print feed_pk

		obj = Entry.objects.filter(feed=this_feedextra.feed).order_by('-date')

	elif category_slug:
		pass

	else:
		obj = Entry.objects.all().order_by('-date')


	try:
		page = request.GET.get('page', 1)
	except PageNotAnInteger:
		page = 1

	per_page = settings.PAGINATION_SETTINGS['ITEMS_PER_PAGE']
	e = Paginator(obj, per_page, request=request)
	entries = e.page(page)

	context = {
		'entries': entries,
		'feeds': feeds,
		'feedextras': feedextras,
	}

	return render(request, 'blog/pages/generic_list.html', context)
示例#20
0
文件: views.py 项目: grigi/gametome
def games(request):
    games_list = Game.objects.all().order_by('-created_date').select_related('reporter','album','company')#.prefetch_related('comments')

    paginator = Paginator(games_list, RESULTS_PER_PAGE)
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1
    try:
        games_list = paginator.page(page)
    except EmptyPage:
        games_list = paginator.page(paginator.num_pages)

    return render(request, 'games.html', {
        'games_list': games_list,
    })
示例#21
0
def course_list(request):

    courses_list = Course.objects.all() # 展示全部数据

    hot_courses = Course.objects.order_by('student_count')[0:2]

    # 课程搜索
    # search_keywords = request.GET.get('keywords','')
    # if search_keywords:
    #     all_course = courses_list.filter(Q)

    # 根据不同的标准,显示.sort是前端定义的,通过get可以获取不同的sort值,同搜索

    sort = request.GET.get('sort','')
    if sort:
        if sort == 'students': # 根据学生量
            courses_list = courses_list.order_by('-student_count')
        elif sort == 'hot': # 根据点击量
            courses_list = courses_list.order_by('-has_fav')


    # 分页
    try:
        page = request.GET.get('page',1) # 获取页值,如果没有默认为1

    except PageNotAnInteger :
        page = 1
    except EmptyPage:
        page = 1
    p = Paginator(courses_list,4,request=request)  #这一步以及把course_list传入了p,分页器

    courses = p.page(page) # 最终传入前端的是courses

    return render(request,'course-list.html',locals())
示例#22
0
    def get(self, request, org_id):
        current_page = 'course'
        course_org = CourseOrg.objects.get(id=int(org_id))
        all_courses = course_org.course_set.all()

        #初始化判断是否收藏
        has_fav = False
        if request.user.is_authenticated():
            if UserFavorite.objects.filter(user=request.user, fav_id = course_org.id, fav_type=2):
                has_fav = True

        # 分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_courses, 2, request=request)

        courses = p.page(page)

        return render(request, 'org-detail-course.html', {
            'all_courses': courses,
            'course_org': course_org,
            'current_page': current_page,
            'has_fav': has_fav,
        })
示例#23
0
    def get(self, request):
        teachers = Teacher.objects.all()
        count = teachers.count()
        hot_teacher = Teacher.objects.all().order_by('-click_nums')[:3]

        # 按热门排序
        order = request.GET.get('order', '')
        if order == 'hot':
            teachers = teachers.order_by('click_nums')

        # 分页设置
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(teachers, 4, request=request)

        all_teachers = p.page(page)

        return render(request, 'teachers-list.html', {
            'teachers' : all_teachers,
            'MEDIA_URL' : MEDIA_URL,
            'count' : count,
            'hot_teacher' : hot_teacher,
        })
示例#24
0
文件: views.py 项目: xypisces/python
    def get(self, request):
        all_courses = Course.objects.all().order_by("-add_time")

        hot_courses = Course.objects.all().order_by("-click_nums")[:3]

        # 课程搜索
        search_keywords = request.GET.get("keywords", "")
        if search_keywords:
            all_courses = all_courses.filter(
                Q(name__icontains=search_keywords) | Q(desc__icontains=search_keywords) | Q(
                    detail__icontains=search_keywords))

        sort = request.GET.get("sort", "")
        if sort:
            if sort == "students":
                all_courses = all_courses.order_by("-students")
            elif sort == "hot":
                all_courses = all_courses.order_by("-click_nums")

        # 对课程进行分页
        try:
            page = request.GET.get("page", 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_courses, 9, request=request)
        courses = p.page(page)

        return render(request, 'course-list.html', {
            'all_courses': courses,
            'sort': sort,
            'hot_courses': hot_courses
        })
示例#25
0
文件: views.py 项目: jdk6979/django
    def get(self, request):
        all_courses = Course.objects.all().order_by("-add_time")
        hot_courses = Course.objects.all().order_by("-click_nums")[:3]

        # 课程排序
        sort = request.GET.get('sort', "")
        if sort:
            if sort == "students":
                all_courses = all_courses.order_by("-students")
            elif sort == "hot":
                all_courses = all_courses.order_by("-click_nums")

        # 课程分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        # 设定每页显示3个
        p = Paginator(all_courses, 3, request=request)
        # 取到分页的课程并赋值给变量courses
        courses = p.page(page)

        return render(request, "course-list.html", {
            "all_courses": courses,
            "sort": sort,
            "hot_courses": hot_courses,
        })
示例#26
0
    def build_page(self):
        """
        Paginates the results appropriately.

        In case someone does not want to use Django's built-in pagination, it
        should be a simple matter to override this method to do what they would
        like.
        """
        try:
            page_no = int(self.request.GET.get('page', 1))
        except (TypeError, ValueError):
            raise Http404("Not a valid number for page.")

        if page_no < 1:
            raise Http404("Pages should be 1 or greater.")

        start_offset = (page_no - 1) * self.results_per_page
        self.results[start_offset:start_offset + self.results_per_page]

        paginator = Paginator(self.results, self.results_per_page)

        try:
            page = paginator.page(page_no)
        except InvalidPage:
            raise Http404("No such page!")

        return (paginator, page)
示例#27
0
    def get(self,request):
        # 获取ip
        ip = request.META.get('HTTP_X_FORWARDED_FOR', '')
        if ip == '':
            ip = request.META['REMOTE_ADDR']
        ip_m = IPRecord.objects.create(ip=ip, across_type="index",ip_address=lookup(ip))
        ip_m.save()

        articles = Article.objects.all().order_by('-add_time')

        # 分页
        page_item_num = 10
        page = 0
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Pa(articles, page_item_num, request=request)

        atricles_inpage = p.page(page)


        return render(request,'index.html',{
            'articles':atricles_inpage,
        })
示例#28
0
    def get(self, request):
        all_teachers = Teacher.objects.all()
        # 总共有多少老师使用count进行统计
        teacher_nums = all_teachers.count()

        # 搜索功能
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            # 在name字段进行操作,做like语句的操作。i代表不区分大小写
            # or操作使用Q
            all_teachers = all_teachers.filter(name__icontains=search_keywords)

        # 人气排序
        sort = request.GET.get("sort", "")
        if sort == "hot":
            all_teachers = all_teachers.order_by('-click_nums')

        # 讲师排行榜
        sorted_teacher = Teacher.objects.all().order_by("-click_nums")[:3]

        # 进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_teachers, 5, request=request)
        teachers = p.page(page)

        return render(request, "teachers-list.html", {
            "all_teachers": teachers,
            "teacher_nums": teacher_nums,
            'sorted_teacher': sorted_teacher,
            'sort': sort,
        })
示例#29
0
def index(request):

    #Uncomment the below block to use standard Django Pagination
    # context=RequestContext(request)
    # product_list=Product.objects.order_by('-time')
    
    # paginator=Paginator(product_list,5)

    # page=request.GET.get('page')
    # try:
    #     products=paginator.page(page)
    # except PageNotAnInteger:
    #     products=paginator.page(1)
    # except EmptyPage:
    #     products=paginator.page(paginator.num_pages)
    # context_dict={"products":products}

    context=RequestContext(request)
    product_list=Product.objects.order_by('-time')
    try:
        page = request.GET.get('page', 1)
    except PageNotAnInteger:
        page = 1

    

    # Provide Paginator with the request object for complete querystring generation
    p = Paginator(product_list, 5,request=request)
    products = p.page(page)
    context_dict={"products":products}


    return render_to_response('listing/index.html',context_dict,context)
示例#30
0
    def get(self, request):
        all_course = Course.objects.all().order_by('-add_time')
        hot_course = all_course.order_by('-click_nums')[:3]   # 热门课程

        sort = request.GET.get('order', '')

        if sort == 'hot':
            all_course = all_course.order_by('-click_nums')         # 按热门排序
        elif sort == 'students':
            all_course = all_course.order_by('-students')          # 按人数排序
       
        # 分页设置
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_course, 9, request=request)

        courses = p.page(page)
    
        return render(request, 'course-list.html', {
            'all_course' : courses,
            'MEDIA_URL' : MEDIA_URL,
            'sort' : sort,
            'hot_course' : hot_course,
        })
示例#31
0
文件: views.py 项目: spzhu/GMOOC
    def get(self, request):
        all_cities = City.objects.all()
        all_orgs = CourseOrg.objects.all()
        hot_orgs = all_orgs.order_by("-click_nums")[:5]
        keyword = request.GET.get("keywords", "")
        if keyword:
            all_orgs = all_orgs.filter(Q(name__icontains=keyword)|
                                       Q(desc__icontains=keyword))
        city_id = request.GET.get("city", "")
        if city_id:
            all_orgs = all_orgs.filter(city_id=int(city_id))

        category = request.GET.get("ct", "")
        if category:
            all_orgs = all_orgs.filter(category=category)

        sort = request.GET.get("sort", "")
        if sort == "students":
            all_orgs = all_orgs.order_by("-students")
        elif sort == "courses":
            all_orgs = all_orgs.order_by("-courses")

        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        # Provide Paginator with the request object for complete querystring generation
        p = Paginator(all_orgs, 3, request=request)
        orgs = p.page(page)
        return render(request, "org-list.html", {
            "all_cities": all_cities,
            "all_orgs": orgs,
            "org_nums": all_orgs.count(),
            "city_id": city_id,
            "category": category,
            "hot_orgs": hot_orgs,
            "sort": sort,
        })
示例#32
0
    def get(self, request, org_id, *args, **kwargs):
        nav_name = 'course'
        '''根据org_id查询对应的机构和课程'''
        org_info = CourseOrg.objects.filter(id=int(org_id))[0]
        org_info.click_nums += 1
        org_info.save()

        all_courses = org_info.course_set.all()
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        # 分页  per_page每页显示5条数据
        p = Paginator(all_courses, per_page=2, request=request)
        courses = p.page(page)

        return render(request, 'org-detail-course.html', {
            'org_info': org_info,
            'all_courses': courses,
            'nav_name': nav_name
        })
示例#33
0
文件: views.py 项目: dacer250/fox_edu
    def get(self, request):
        current_page = 'mymessage'
        all_message = UserMessage.objects.filter(user=request.user.id)
        # 用户进入个人消息后清空未读消息的记录
        all_unread_messages = UserMessage.objects.filter(user=request.user.id,
                                                         has_read=False)
        for unread_message in all_unread_messages:
            unread_message.has_read = True
            unread_message.save()

        # 对个人消息进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        # Provide Paginator with the request object for complete querystring generatio
        p = Paginator(all_message, 3, request=request)
        messages = p.page(page)
        return render(request, "usercenter-message.html", {
            "messages": messages,
            "current_page": current_page,
        })
示例#34
0
文件: views.py 项目: Evandoz/hitol
    def get(self, request):

        current_page = 'message'

        all_messages = UserMessage.objects.filter(user=request.user.id)

        all_unread_messages = UserMessage.objects.filter(user=request.user.id, has_read=False)
        for unread_message in all_unread_messages:
            unread_message.has_read = True
            unread_message.save()

        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_messages, 3, request=request)
        messages = p.page(page)

        return render(request, 'usercenter-message.html', {
            'current_page': current_page,
            'all_messages': messages
        })
示例#35
0
    def get(self, request):
        all_messages = UserMessage.objects.filter(user=request.user.id)

        # 用户进入个人消息后清空未读消息的记录
        all_unread_msgs = UserMessage.objects.filter(user=request.user.id,
                                                     has_read=False)
        for unread_msg in all_unread_msgs:
            unread_msg.has_read = True
            unread_msg.save()

        # 个人消息分页的功能
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_messages, 3, request=request)
        all_messages = p.page((page))

        return render(request, 'usercenter-message.html', {
            "all_messages": all_messages,
        })
示例#36
0
    def get(self, request):
        all_message = UserMessage.objects.filter(user=request.user.id)

        # 用户进入个人中心消息页面,清空未读消息记录
        all_unread_messages = UserMessage.objects.filter(user=request.user.id,
                                                         has_read=False)
        for unread_message in all_unread_messages:
            unread_message.has_read = True
            unread_message.save()
        # 对课程类型进行分页
        # 尝试获取前台get请求传递过来的page参数
        # 如果是不合法的配置参数默认返回第一页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        # 这里指从allorg中取五个出来,每页显示5个
        p = Paginator(all_message, 4)
        messages = p.page(page)
        return render(request, "usercenter-message.html", {
            "messages": messages,
        })
示例#37
0
文件: views.py 项目: chenzwcc/hunda
    def get(self, request, author_id):
        current_page = 'article'
        author = Author.objects.get(id=int(author_id))
        all_article = author.article_set.all()
        huan_article = all_article.order_by('-fav_nums')[:1]
        hot_article = author.article_set.order_by('-click_nums')[:2]

        message = ''
        message_list = UserMessage.objects.filter(user=request.user.id,
                                                  has_read=False)
        if message_list.__len__():
            message = 'message'

        # 分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_article, 5, request=request)
        article = p.page(page)

        has_fav = False
        if request.user.is_authenticated():
            # 判断该用户是否已经收藏该作者
            if UserFavorite.objects.filter(user=request.user,
                                           fav_id=author.id,
                                           fav_type=2):
                has_fav = True
        return render(
            request, 'TAdetail.html', {
                'author': author,
                'all_article': article,
                'current_page': current_page,
                'hot_article': hot_article,
                'huan_article': huan_article,
                'has_fav': has_fav,
                'message': message,
            })
示例#38
0
def Home(request):
    """
    首页
    :param request:
    :return:
    """
    recommend = Recommend.objects.filter(is_recommend=True)[:10]
    seo_list = get_object_or_404(Seo, name='首页')
    qq = QQ.objects.all()
    links = link.objects.all()
    #user = Follow.objects.values('follow_id').distinct().order_by('-follow_id')
    # user = Follows.objects.values('follow_id').distinct().order_by('-follow_id')
    # item=[]
    # for i in user:
    #     data={}
    #     #print(User.objects.filter(follow__follow__id=i['follow_id']))
    #     data['data']=User.objects.filter(follow__follow__id=i['follow_id']).distinct()
    #     item.append(data)
    try:
        page = request.GET.get('page', 1)
        if page == '':
            page = 1
    except PageNotAnInteger:
        page = request.GET.get('page')
    # Provide Paginator with the request object for complete querystring generation
    article = Article.objects.filter(is_show=True)[:100]
    p = Paginator(article, 10, request=request)
    people = p.page(page)
    banners = Banners.objects.first()
    return render(
        request, 'pc/index.html', {
            'seo_list': seo_list,
            'article': people,
            'qq': qq,
            'recommend': recommend,
            'links': links,
            'banners': banners
        })
    def get(self, request):
        search_keyword = request.GET.get('keywords')
        if search_keyword:
            all_courses = Course.objects.filter(Q(name__icontains=search_keyword) |
                                                Q(desc__icontains=search_keyword) |
                                                Q(detail__icontains=search_keyword) |
                                                Q(category__icontains=search_keyword)
                                                )

        # 从数据库获得的数据
        else:
            all_courses = Course.objects.all()

        sort = request.GET.get('sort', '')
        hot_courses = Course.objects.all().order_by('-click_nums')[:3]

        # 开始排序逻辑
        if not sort:
            sort = 'add_time'

        all_courses = all_courses.order_by("-%s" % (sort))

        # 开始分页逻辑
        try:
            page = int(request.GET.get('page', 1))
        except PageNotAnInteger:
            page = 1

        # per_page参数设置每页显示的对象个数.
        p = Paginator(all_courses, per_page=6, request=request)

        courses = p.page(page)

        return render(request, 'course-list.html', {
            "all_course": courses,
            'sort': sort,
            'hot_courses': hot_courses,
        })
示例#40
0
    def get(self, request, *args, **kwargs):
        all_orgs = CourseOrg.objects.all()
        all_city = City.objects.all()
        category = request.GET.get('ct', '')
        hot_orgs = CourseOrg.objects.order_by('-click_nums')[:3]

        if category:
            all_orgs = all_orgs.filter(category=category)
        city_id = request.GET.get('city', '')
        if city_id:
            if city_id.isdigit():  # 判断字符串是否指包含数字
                all_orgs = all_orgs.filter(city_id=int(city_id))
        org_count = all_orgs.count()
        sort = request.GET.get('sort', '')
        if sort == "students":
            all_orgs = all_orgs.order_by(
                '-students')  # order_by 排序 在字段前面加- 表示按照这个字段的倒叙排序
        if sort == "courses":
            all_orgs = all_orgs.order_by('-course_nums')
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        # 机构列表分页
        # 注意要 要提供per_page 参数  一页显示多少条
        p = Paginator(all_orgs, per_page=5, request=request)
        all_orgs = p.page(page)
        return render(
            request, 'org-list.html', {
                'hot_orgs': hot_orgs,
                'org_count': org_count,
                'all_city': all_city,
                'category': category,
                'city_id': city_id,
                'all_org': all_orgs,
                'sort': sort
            })
示例#41
0
    def get(self, request):
        all_teachers = Teacher.objects.all()

        # 搜索功能
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            all_teachers = all_teachers.filter(
                Q(name__icontains=search_keywords)
                | Q(work_company__icontains=search_keywords)
                | Q(work_position__icontains=search_keywords))  # i是不区分大小写

        # 课程总数
        teacher_nums = all_teachers.count()

        # 按需排序功能
        sort = request.GET.get('sort', "")
        if sort:
            if sort == "hot":
                all_teachers = all_teachers.order_by('-click_num')

        # 讲师排行榜
        teacher_rank = all_teachers.order_by('-click_num')[:3]

        # 分页功能
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_teachers, 5, request=request)
        teachers = p.page(page)

        return render(
            request, 'teachers-list.html', {
                'all_teachers': teachers,
                'teacher_rank': teacher_rank,
                'teacher_nums': teacher_nums,
                'sort': sort,
            })
示例#42
0
    def get(self, request):
        all_teacher = Teacher.objects.all()
        sort = request.GET.get("sort", "")
        if sort:
            if sort == "hot":
                all_teacher = all_teacher.order_by("-click_nums")

        # 首页(base.html)搜索功能
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            # 在name字段进行操作,做like语句的操作。i代表不区分大小写
            # or操作使用Q
            all_teacher = all_teacher.filter(
                Q(name__icontains=search_keywords)
                | Q(work_company__icontains=search_keywords))

        # 排行榜讲师
        rank_teacher = Teacher.objects.all().order_by("-fav_nums")[:5]
        # 总共有多少老师使用count进行统计
        teacher_nums = all_teacher.count()
        # 对讲师进行分页
        # 尝试获取前台get请求传递过来的page参数
        # 如果是不合法的配置参数默认返回第一页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        # 这里指从allorg中取五个出来,每页显示5个
        p = Paginator(all_teacher, 4, request=request)
        teachers = p.page(page)
        return render(
            request, "teachers-list.html", {
                "all_teacher": teachers,
                "teacher_nums": teacher_nums,
                "sort": sort,
                "rank_teachers": rank_teacher,
                "search_keywords": search_keywords,
            })
示例#43
0
文件: views.py 项目: yangfanjun/MxWeb
    def get(self, request):
        all_courses = Course.objects.all().order_by('-add_time')
        hot_courses = Course.objects.all().order_by('-click_nums')[:3]

        # 课程搜索
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            all_courses = Course.objects.filter(
                Q(name__icontains=search_keywords)
                | Q(desc__icontains=search_keywords))

        # 统计课程数
        all_courses_nums = all_courses.count()

        # 课程排序
        sort = request.GET.get('sort', '')
        if sort:
            if sort == 'students':
                all_courses = all_courses.order_by('-students')
            elif sort == 'hot':
                all_courses = all_courses.order_by('-click_nums')

        # 对课程进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_courses, 6, request=request)
        courses = p.page(page)

        return render(
            request, 'course-list.html', {
                'all_courses': courses,
                'sort': sort,
                'hot_courses': hot_courses,
                'all_courses_nums': all_courses_nums,
                'keywords': search_keywords,
            })
示例#44
0
    def get(self, request):

        topped_Artcles_all = None
        search_keywords = request.GET.get("keywords", "")
        if search_keywords:
            # 课程搜索                              i代表不区分大小写
            category_Artcles_all = Article.objects.filter(
                Q(title__icontains=search_keywords)
                | Q(body__icontains=search_keywords))
        else:
            # 根据添加时间在新随笔显示
            category_Artcles_all = Article.objects.filter(
                topped=False).order_by("-created_time")
            #获取全部的置顶笔记
            topped_Artcles_all = Article.objects.filter(
                topped=True).order_by("-created_time")

        #取出所有新评论
        New_comment = ArticleComments.objects.all().order_by("-add_time")[:3]

        #取出所有评论
        comment_count = ArticleComments.objects.all()

        #对文章进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(category_Artcles_all, 4, request=request)
        Artcles_all = p.page(page)

        return render(
            request, "Art_main_list.html", {
                "New_comment": New_comment,
                "category_Artcles_all": Artcles_all,
                "comment_count": comment_count,
                "topped_Artcles_all": topped_Artcles_all
            })
示例#45
0
    def get(self, request):
        # 全部课程
        all_courses = Course.objects.all().order_by('-add_time')

        # 侧栏热门推荐
        hot_courses = Course.objects.order_by('-click_nums')[:3]

        # 课程搜索
        search_keywords = request.GET.get('keywords', "")
        if search_keywords:
            all_courses = all_courses.filter(
                Q(name__icontains=search_keywords)
                | Q(desc__icontains=search_keywords)
                | Q(detail__icontains=search_keywords))

        sort = request.GET.get('sort', "")
        if sort:
            if sort == 'hot':
                # 热门筛选
                all_courses = all_courses.order_by('-click_nums')
            if sort == 'students':
                # 人数筛选
                all_courses = all_courses.order_by('-students')

        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        # Provide Paginator with the request object for complete querystring generation
        p = Paginator(all_courses, 1, request=request)
        orgs = p.page(page)

        return render(request, 'course-list.html', {
            'all_courses': orgs,
            'hot_courses': hot_courses,
            'sort': sort,
        })
示例#46
0
文件: views.py 项目: CarlChen1996/BLG
    def get(self, request):

        all_blogs = Blogs.objects.all()
        top_blogs = all_blogs.order_by('-click_nums')[:3]
        # 作者
        all_author = Author.objects.all()
        authors = all_author.order_by('-click_nums')[:3]
        # 类别筛选
        category = request.GET.get('ct', '')
        if category:
            all_blogs = all_blogs.filter(category=category)
        # 收藏数点击数排序
        sort = request.GET.get('sort', '')
        if sort:
            if sort == 'fav_nums':
                all_blogs = all_blogs.order_by('-fav_nums')
            elif sort == 'click_nums':
                all_blogs = all_blogs.order_by('-click_nums')

        blog_nums = all_blogs.count()
        # 分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_blogs, 2, request=request)
        blogs = p.page(page)

        return render(
            request, 'blog_list.html', {
                "all_blogs": blogs,
                'blog_nums': blog_nums,
                'category': category,
                'top_blogs': top_blogs,
                'sort': sort,
                'authors': authors
            })
示例#47
0
    def get(self, request):
        # 课程机构
        all_orgs = CourseOrg.objects.all()
        hot_orgs = all_orgs.order_by("click_nums")[:3]
        # 城市
        all_citys = CityDict.objects.all()
        # 筛选城市
        city_id = request.GET.get('city', "")
        if city_id:
            all_orgs = all_orgs.filter(city_id=int(city_id))
        # 类别筛选
        category = request.GET.get('ct', "")
        if category:
            all_orgs = all_orgs.filter(category=category)
        sort = request.GET.get('sort', "")
        if sort:
            if sort == "students":
                all_orgs = all_orgs.order_by("-students")
            elif sort == "courses":
                all_orgs = all_orgs.order_by("-course_nums")


        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        all_nums = all_orgs.count()
        p = Paginator(all_orgs, 5, request=request)
        orgs = p.page(page)
        return render(request, "org-list.html", {
            "all_orgs": orgs,
            "all_citys":all_citys,
            "all_nums": all_nums,
            "city_id":city_id,
            "category":category,
            "hot_orgs":hot_orgs,
            "sort":sort,
        })
示例#48
0
文件: views.py 项目: SimonMQ/MxOnline
    def get(self, request):
        current_list = 'courses'
        all_courses = Course.objects.all()
        hot_courses = all_courses.order_by('-click_nums')[:5]

        # 搜索功能
        # 使用并集查询功能,过滤出符合条件的搜索内容
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            all_courses = all_courses.filter(
                Q(name__icontains=search_keywords)
                | Q(desc__icontains=search_keywords)
                | Q(detail__icontains=search_keywords))

        # 排序
        sort = request.GET.get('sort', '')
        if not sort:
            all_courses = all_courses.order_by('-add_time')
        elif sort == 'students':
            all_courses = all_courses.order_by('-students')
        elif sort == 'hot':
            all_courses = all_courses.order_by('-click_nums')

        # 分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_courses, 9, request=request)
        courses = p.page(page)

        context = {
            'all_courses': courses,
            'hot_courses': hot_courses,
            'sort': sort,
            'current_list': current_list,
        }
        return render(request, 'course-list.html', context=context)
示例#49
0
文件: views.py 项目: bluesnie/muke
    def get(self, request):
        all_teachers = Teacher.objects.all()

        # 教师搜索
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            # __contains相当于sql语句中的like语法,'i'表示不区分大小写,Q加|相当于or查询
            all_teachers = all_teachers.filter(
                Q(name__icontains=search_keywords)
                | Q(work_company__icontains=search_keywords)
                | Q(work_position__icontains=search_keywords)
                | Q(org__name__icontains=search_keywords))

        # 人气筛选
        sort = request.GET.get('sort', '')
        if sort:
            if sort == 'hot':
                all_teachers = all_teachers.order_by('-click_nums')

        # 讲师排行榜
        hot_teachers = Teacher.objects.all().order_by('-click_nums')[:5]
        teacher_nums = all_teachers.count()
        # 翻页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        # 传3个参数,第二个参数是显示每页数目
        p = Paginator(all_teachers, 1, request=request)
        teachers = p.page(page)

        return render(
            request, 'teachers-list.html', {
                "all_teachers": teachers,
                "teacher_nums": teacher_nums,
                "hot_teachers": hot_teachers,
                "sort": sort,
            })
示例#50
0
    def get(self, request):
        # 所有的课程
        all_course = Course.objects.all()

        # 热门课程
        hot_course = all_course.order_by('-click_nums')[:3]

        # 通过关键字筛选
        keywords = request.GET.get('keywords', '')
        if keywords:
            all_course = all_course.filter(
                Q(name__icontains=keywords) | Q(desc__icontains=keywords)
                | Q(detail__icontains=keywords))

        # 对所有课程进行排序
        sort_type = request.GET.get('sort', '')
        if sort_type == 'hot':
            all_course = all_course.order_by('-click_nums')
        elif sort_type == 'students':
            all_course = all_course.order_by('-students')
        else:
            all_course = all_course.order_by('-add_time')

        # 对所有课程进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_course, 6, request=request)
        courses = p.page(page)

        return render(
            request, 'course-list.html', {
                'all_course': courses,
                'hot_course': hot_course,
                'sort_type': sort_type
            })
示例#51
0
    def get(self,request):
        all_course = Course.objects.all().order_by('-add_time')   #默认排序最新排序

        hot_course = Course.objects.all().order_by('-click_nums')[:3]

        #搜索功能
        search_keywords = request.GET.get('keywords','')
        if search_keywords:
            all_course = all_course.filter(Q(name__icontains=search_keywords) | Q(desc__icontains=search_keywords) | Q(
                detail__icontains=search_keywords))  #icontains 中的i表示django里面一般都是不区分大小写

        #进行人们与参与人数排序
        sort = request.GET.get('sort', '')
        if sort:
            if sort == 'students':
                all_course = all_course.order_by('-students')  # - 号代表倒叙排序
            elif sort == 'courses':
                all_course = all_course.order_by('-click_nums')

        # 分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        # objects = ['john', 'edward', 'josh', 'frank']

        # Provide Paginator with the request object for complete querystring generation

        p = Paginator(all_course, 6, request=request)  # 这里的5是每一页只显示5个

        courses = p.page(page)

        return render(request,'course-list.html',{
            'all_course':courses,
            'sort':sort,
            'hot_course':hot_course
        })
示例#52
0
    def post(self, request):
        group = HostGroup()

        group.group_name = request.POST.get('group_name', "")
        group.group_detail = request.POST.get('group_detail', "")
        group.network = request.POST.get('group_network', "")

        has_group = HostGroup.objects.filter(group_name=group.group_name)

        if has_group:
            return render(request, "add-group.html", {
                "status": "failed",
                "msg": "添加失败:主机组已存在!"
            })
        elif group.group_name == "":
            return render(request, "add-group.html", {
                "status": "failed",
                "msg": "添加失败:主机组名不能为空!"
            })
        else:
            group.save()
            groups = HostGroup.objects.all()

            #分页
            try:
                page = request.GET.get('page', 1)
            except PageNotAnInteger:
                page = 1

            # Provide Paginator with the request object for complete querystring generation
            p = Paginator(groups, 10, request=request)
            groups = p.page(page)

            return render(request, "group-list.html", {
                "status": "success",
                'groups': groups,
                "msg": "添加成功!"
            })
示例#53
0
    def get(self, request, teacher_id):
        try:
            teacher = Teacher.objects.get(id=teacher_id)
            teacher_courses = teacher.course_set.all()
            hot_teachers = Teacher.objects.all().order_by('-click_nums')[:5]
            teacher.click_nums += 1
            teacher.save()

            has_fav_teacher = False
            has_fav_org = False

            if request.user.is_authenticated():
                if UserFavorite.objects.filter(user=request.user,
                                               fav_id=teacher.id,
                                               fav_type=3):
                    has_fav_teacher = True
                if UserFavorite.objects.filter(user=request.user,
                                               fav_id=teacher.org.id,
                                               fav_type=2):
                    has_fav_org = True

            try:
                page = request.GET.get('page', 1)
            except PageNotAnInteger:
                page = 1
            p = Paginator(teacher_courses, 8, request=request)
            teacher_courses = p.page(page)

            return render(
                request, 'teacher-detail.html', {
                    'teacher': teacher,
                    'hot_teachers': hot_teachers,
                    'teacher_courses': teacher_courses,
                    'has_fav_teacher': has_fav_teacher,
                    'has_fav_org': has_fav_org
                })
        except Exception as e:
            None
示例#54
0
    def get(self, request, teacher_id):
        teacher = Teacher.objects.get(id=int(teacher_id))
        teacher.click_nums += 1
        teacher.save()
        teacher_ranges = Teacher.objects.all().order_by('-fav_nums')[:3]
        courses = teacher.course_set.all()

        # 检查收藏按钮
        has_teacher_fav = False
        has_org_fav = False
        if UserFavorite.objects.filter(user=request.user,
                                       fav_id=teacher.id,
                                       fav_type=3):
            has_teacher_fav = True
        if UserFavorite.objects.filter(user=request.user,
                                       fav_id=teacher.org.id,
                                       fav_type=2):
            has_org_fav = True

        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

            # Provide Paginator with the request object for complete querystring generation
        # 控制每一页显示的个数
        p = Paginator(courses, 3, request=request)

        courses = p.page(page)

        return render(
            request, 'teacher-detail.html', {
                "teacher": teacher,
                "teacher_ranges": teacher_ranges,
                "courses": courses,
                "has_teacher_fav": has_teacher_fav,
                "has_org_fav": has_org_fav
            })
示例#55
0
    def get(self, request):
        all_teachers = Teacher.objects.all()

        # 课程讲师搜索
        search_keywords = request.GET.get('keywords', "")
        if search_keywords:
            all_teachers = all_teachers.filter(
                Q(name__icontains=search_keywords)
                | Q(work_company__icontains=search_keywords)
                | Q(work_position__icontains=search_keywords))

        # 热门排序
        sort = request.GET.get('sort', "")
        if sort:
            if sort == "hot":
                all_teachers = all_teachers.order_by("-click_nums")

        teacher_nums = all_teachers.count()

        # 讲师排行榜
        sorted_teacher = Teacher.objects.all().order_by("-click_nums")[:3]

        #对讲师进行分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1

        p = Paginator(all_teachers, 1, request=request)

        teachers = p.page(page)
        return render(
            request, "teachers-list.html", {
                "all_teachers": teachers,
                "sorted_teacher": sorted_teacher,
                "sort": sort,
                "teacher_nums": teacher_nums,
            })
示例#56
0
    def get(self,request):
        # 所有教师
        all_teacher=Teacher.objects.all()
        # 搜索
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            all_teacher = Teacher.objects.filter(Q(name__icontains=search_keywords) |
                                               Q(work_position__icontains=search_keywords) |
                                               Q(work_years__icontains=search_keywords)
                                               )
        # 人气进行筛选
        sort=request.GET.get('sort','')
        if sort:
            if sort=='hot':
                all_teacher=all_teacher.order_by('-work_years')
        # 人气讲师,通过clik_nums
        hot_teacher=all_teacher.order_by('-clik_nums')[:3]
        # 统计人数
        all_count=all_teacher.count()
        # 分页功能
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        objects = ['john', 'edward', 'josh', 'frank']
        # 需要传入默认值  5
        p = Paginator(all_teacher, 3, request=request)
        teacher = p.page(page)

        return render(request,'teachers-list.html',{
            # 经过分页后,“all_teacher”不在是querset类型,,
            # 变成Page类型,不能迭代 所以前端页面需要在all_teacher后面再加.object_list
            "all_teacher":teacher,
            "hot_teacher":hot_teacher,
            'sort':sort,
            "all_count":all_count,

        })
示例#57
0
 def get(self, request):
     print("11111111111111111111111111")
     all_course = Course.objects.all()
     # 热门课程推荐
     hot_courses = Course.objects.all().order_by("-students")[:3]
     # 搜索功能
     search_keywords = request.GET.get('keywords', '')
     if search_keywords:
         # 在name字段进行操作,做like语句的操作。i代表不区分大小写
         # or操作使用Q
         all_course = all_course.filter(
             Q(name__icontains=search_keywords)
             | Q(desc__icontains=search_keywords)
             | Q(detail__icontains=search_keywords))
     # 对课程进行分页
     # 尝试获取前台get请求传递过来的page参数
     # 如果是不合法的配置参数默认返回第一页
     # 进行排序
     sort = request.GET.get('sort', "")
     if sort:
         if sort == "students":
             all_course = all_course.order_by("-students")
         elif sort == "hot":
             all_course = all_course.order_by("-click_nums")
     try:
         page = request.GET.get('page', 1)
     except PageNotAnInteger:
         page = 1
     # 这里指从allorg中取五个出来,每页显示5个
     p = Paginator(all_course, 6, request=request)
     courses = p.page(page)
     return render(
         request, "course-list.html", {
             "all_course": courses,
             "sort": sort,
             "hot_courses": hot_courses,
             "search_keywords": search_keywords
         })
示例#58
0
    def get(self, request):
        all_orgs = CourseOrg.objects.all()
        hot_orgs = all_orgs.order_by('-click_nums')[:3]
        all_citys = CityDict.objects.all()
        search_kw = request.GET.get('keywords')
        if search_kw:
            all_orgs = all_orgs.filter(
                Q(name__icontains=search_kw) | Q(desc__icontains=search_kw))
        city_id = request.GET.get('city', '')
        if city_id:
            all_orgs = all_orgs.filter(city_id=int(city_id))
        category = request.GET.get('ct', '')
        if category:
            all_orgs = all_orgs.filter(category=category)

        sort = request.GET.get('sort', '')
        if sort == 'students':
            all_orgs = all_orgs.order_by('-students')
        elif sort == 'courses':
            all_orgs = all_orgs.order_by('-course_nums')
        all_nums = all_orgs.count()
        #课程机构分页
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_orgs, 3, request=request)
        orgs = p.page(page)
        return render(
            request, 'org-list.html', {
                'all_orgs': orgs,
                'all_citys': all_citys,
                'all_nums': all_nums,
                'city_id': city_id,
                'category': category,
                'hot_orgs': hot_orgs,
                'sort': sort,
            })