Exemplo n.º 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,
    })
Exemplo n.º 2
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,

        })
Exemplo n.º 3
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,
        })
Exemplo n.º 4
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,
        })
Exemplo n.º 5
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,
        })
Exemplo n.º 6
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
Exemplo n.º 7
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})
Exemplo n.º 8
0
 def get(self, request):
     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
     })
Exemplo n.º 9
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)
Exemplo n.º 10
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,
        })
Exemplo n.º 11
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)
Exemplo n.º 12
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,
        })
Exemplo n.º 13
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,
        })
Exemplo n.º 14
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 })
Exemplo n.º 15
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)
Exemplo n.º 16
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:
            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
        })
Exemplo n.º 17
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)
Exemplo n.º 18
0
Arquivo: views.py Projeto: 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,
        }
    )
Exemplo n.º 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)
Exemplo n.º 20
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())
Exemplo n.º 21
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)
Exemplo n.º 22
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,
        })
Exemplo n.º 23
0
    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,
        })
Exemplo n.º 24
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,
        })
Exemplo n.º 25
0
def adv_list(request):
    try:
        page = int(request.GET.get('page', 1))
    except ValueError:
        page = 1

    ordering = {
            'cu': 'city',
            'cd': '-city',
            'nu': 'title',
            'nd': '-title',
            'tu': 'add_time',
            'td': '-add_time',
        }
    nu, cu, tu = 'nu', 'cu', 'tu'
    what, where = '', ''

    ord_get = request.GET.get('ord', 'td')
    order = ordering.get(ord_get, '-add_time')

    if ord_get == 'cu':
        cu = 'cd'
    elif ord_get == 'nu':
        nu = 'nd'
    elif ord_get == 'tu':
        tu = 'td'

    adv_list = Advert.objects.filter(enable=True)

    form = SearchForm(request.GET)

    if form.is_valid():
        f = form.cleaned_data
        what = f.get('what')
        where = f.get('where')

        if where == 'title':
            adv_list = adv_list.filter(title__contains=what)
        elif where == 'city':
            adv_list = adv_list.filter(city__contains=what)
        elif where == 'what':
            adv_list = adv_list.filter(Q(what__contains=what) | \
                    Q(what_for__contains=what))
        elif where == 'all':
            adv_list = adv_list.filter(Q(what__contains=what) | \
                    Q(what_for__contains=what) | \
                    Q(city__contains=what) | \
                    Q(title__contains=what))

    adv_list = adv_list.order_by(order)

    p = Paginator(adv_list, 10, request=request)
    adv_page = p.page(page)
    adv_list = adv_page.object_list

    return render(request, 'adv_list.html', locals())
Exemplo n.º 26
0
    def get(self, request):
        # 所有机构
        all_orgs = CourseOrg.objects.all()

        # 所有城市
        all_citys = CityDict.objects.all()

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

        # 城市id过滤
        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)

        # 热门课程机构排名
        hot_orgs = all_orgs.order_by('-click_nums')[:3]

        # 学习人数和课程数筛选
        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")

        # 机构总数
        org_nums = all_orgs.count()

        # 机构分页
        try:
            page = request.GET.get("page", 1)
        except PageNotAnInteger:
            page = 1
        # 默认每页显示5个
        p = Paginator(all_orgs, 5, request=request)
        orgs = p.page(page)

        return render(request, "org-list.html", {
            "all_orgs": orgs,
            "all_citys": all_citys,
            "org_nums": org_nums,
            'city_id': city_id,
            "category": category,
            "hot_orgs": hot_orgs,
            "sort": sort,
        })
Exemplo n.º 27
0
def pagn(request, articles):
    try:
        page = request.GET.get('page', 1)
    except PageNotAnInteger:
        page = 1
    except EmptyPage:
        page = 1
    p = Paginator(articles, per_page=3, request=request)
    articles = p.page(page)
    return articles
Exemplo n.º 28
0
def order_and_paginater_queryset(request, queryset, default_order):
    order = request.GET.get('order', default_order)
    direction = '' if 'd' in request.GET else '-'
    try:
        page = request.GET.get('page', 1)
    except PageNotAnInteger:
        page = 1
    queryset = queryset.order_by(direction + order)
    paginator = Paginator(queryset, LIMIT_BY_PAGE, request=request)
    return paginator.page(page)
Exemplo n.º 29
0
def basic_search(request, template='search/search.html', load_all=True, form_class=ModelSearchForm, searchqueryset=None, context_class=RequestContext, extra_context=None, results_per_page=None):
    """
    A more traditional view that also demonstrate an alternative
    way to use Haystack.

    Useful as an example of for basing heavily custom views off of.

    Also has the benefit of thread-safety, which the ``SearchView`` class may
    not be.

    Template:: ``search/search.html``
    Context::
        * form
          An instance of the ``form_class``. (default: ``ModelSearchForm``)
        * page
          The current page of search results.
        * paginator
          A paginator instance for the results.
        * query
          The query received by the form.
    """
    query = ''
    results = EmptySearchQuerySet()

    if request.GET.get('q'):
        form = form_class(request.GET, searchqueryset=searchqueryset, load_all=load_all)

        if form.is_valid():
            query = form.cleaned_data['q']
            results = form.search()
    else:
        form = form_class(searchqueryset=searchqueryset, load_all=load_all)

    paginator = Paginator(results, results_per_page or RESULTS_PER_PAGE)

    try:
        page = paginator.page(int(request.GET.get('page', 1)))
    except InvalidPage:
        raise Http404("No such page of results!")

    context = {
        'form': form,
        'page': page,
        'paginator': paginator,
        'query': query,
        'suggestion': None,
    }

    if results.query.backend.include_spelling:
        context['suggestion'] = form.get_suggestion()

    if extra_context:
        context.update(extra_context)

    return render_to_response(template, context, context_instance=context_class(request))
Exemplo n.º 30
0
    def build_page(self):
        """
        Use django-pure-pagination
        """
        paginator = Paginator(self.results, self.results_per_page, request=self.request)
        try:
            page = paginator.page(self.request.GET.get('page', 1))
        except InvalidPage:
            raise Http404

        return (paginator, page)
Exemplo n.º 31
0
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,
        })
Exemplo n.º 32
0
    def get(self, request):
        search = request.GET.get('search')
        if search:
            search = request.GET.get('search').strip()
            # 如果输入的是纯数字,则将序号也加入到搜索的列表中来
            try:
                search_int = int(search)
                servers = Server.objects.filter( Q(An__icontains=search)| Q(zctype__zctype__icontains=search)
                                                 | Q(Location__icontains=search)
                                                 | Q(Head__icontains=search)
                                                 | Q(ServerName__icontains=search)
                                                 | Q(Ipaddress__icontains=search)). \
                    order_by('zctype', 'id')
            except Exception:
                servers = Server.objects.filter( Q(An__icontains=search)| Q(zctype__zctype__icontains=search)
                                                 | Q(Location__icontains=search)
                                                 | Q(Head__icontains=search)
                                                 | Q(ServerName__icontains=search)
                                                 | Q(Ipaddress__icontains=search)). \
                    order_by('zctype', 'id')
        else:
            servers = Server.objects.all().order_by('zctype', 'id')

        # 分页功能实现
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(servers, per_page=per_page, request=request)
        p_servers = p.page(page)
        start = (int(page) - 1) * per_page  # 避免分页后每行数据序号从1开始
        return render(request, 'servers/server_list.html', {
            'p_servers': p_servers,
            'start': start,
            'search': search
        })
Exemplo n.º 33
0
def SearchView(request):
    kw = request.POST.get('keyword', '')
    post_list = Post.objects.filter(
        Q(title__icontains=kw) | Q(content__icontains=kw))

    tags = Tags.objects.all()
    #print(tags)
    tag_message_list = []
    for t in tags:
        count = len(t.post_set.all())
        tm = TagMessage(t.id, t.name, count)
        tag_message_list.append(tm)
    #print(post_list)
    try:
        page = request.GET.get('page', 1)
    except PageNotAnInteger:
        page = 1

    p = Paginator(post_list, per_page=3, request=request)

    post_list = p.page(page)

    comment_list1 = Comment.objects.all().order_by('-pub_date')
    comment_list2 = []
    comment_list = []
    for i in comment_list1:
        if i.post not in comment_list2:
            # print(i.post)
            comment_list2.append(i.post)
            comment_list.append(i)
    ctx = {
        'tags': tag_message_list,
        'post_list': post_list,
        'comment_list': comment_list
    }
    return render(request, 'list.html', ctx)
Exemplo n.º 34
0
    def get(self, request):
        all_teacher = Teacher.objects.all()
        # 搜索
        search_keywords = request.GET.get('keywords', '')
        if search_keywords:
            all_teacher = all_teacher.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_teacher = all_teacher.order_by('-click_nums')

        sorted_teachers = Teacher.objects.all().order_by('-click_nums')[:3]

        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(all_teacher, 1, request=request)
        teachers = p.page(page)
        return render(request, 'teachers-list.html', locals())
Exemplo n.º 35
0
    def get(self, request, *args, **kwargs):
        all_teachers = Teacher.objects.all()
        teacher_nums = all_teachers.count()

        hot_teachers = Teacher.objects.all().order_by("-click_nums")[:3]

        keywords = request.GET.get("keywords", "")
        s_type = "teacher"
        if keywords:
            all_teachers = all_teachers.filter(Q(name__icontains=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, per_page=1, request=request)
        teachers = p.page(page)

        return render(
            request,
            "teachers-list.html",
            {
                "teachers": teachers,
                "teacher_nums": teacher_nums,
                "sort": sort,
                "hot_teachers": hot_teachers,
                # "keywords": keywords,
                # "s_type": s_type
            })
Exemplo n.º 36
0
    def get(self, request, category_name):
        category = Category.objects.filter(name=category_name).first()
        cate_blogs = category.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(cate_blogs, 5, request=request)
        cate_blogs = p.page(page)

        return render(request, 'blog/category-detail.html', {
            'cate_blogs': cate_blogs,
            'category_name': category_name,
            'blog_nums': blog_nums,
            'cate_nums': cate_nums,
            'tag_nums': tag_nums,
        })
Exemplo n.º 37
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:
            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, 12, request=request)

        courses = p.page(page)

        return render(request, 'course-list.html', {
            "all_courses": courses,
            "sort": sort,
            "hot_courses": hot_courses
        })
Exemplo n.º 38
0
    def get(self, request):
        all_courses = Coures.objects.all().order_by("-add_time")  #时间排序

        hot_courses = Coures.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 == 'hot':
            all_courses = Coures.objects.all().order_by(
                "-click_nums")  #根据点击数排序

        if sort == 'students':
            all_courses = Coures.objects.all().order_by("-students")  #根据学生数排序

        #对课程进行分页
        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,
            "sort": sort,
            'hot_courses': hot_courses
        })
Exemplo n.º 39
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(
                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")
        # 讲师排行榜
        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, 'organization/teachers-list.html', {
                "all_teachers": teachers,
                "sorted_teacher": sorted_teacher,
                "sort": sort,
                "teacher_nums": teacher_nums,
            })
Exemplo n.º 40
0
    def post(self, request):
        keyword = request.POST.get('keyword')
        topic_list = Topic.objects.filter(
            Q(content__icontains=keyword)
            | Q(title__icontains=keyword)).order_by('-add_time')

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

        p = Paginator(topic_list, 10, request=request)

        topic_list = p.page(page)

        for i in topic_list.object_list:
            i.time_span = time_span(i.add_time)
            i.last_reply = i.reply_set.order_by('-add_time')[:1]

        context = get_context()
        context['keyword'] = keyword
        context['topic_list'] = topic_list

        return render(request, 'search-result.html', context)
Exemplo n.º 41
0
    def get(self, request):
        all_teachers = Teacher.objects.all()

        # 讲师搜索,通过名字、特点、公司
        search_keywords = request.GET.get('keywords', "")
        if search_keywords:
            all_teachers = search_keywords.filter(
                Q(name__icontains=search_keywords)
                | Q(poins__icontains=search_keywords)
                | Q(word_company__icontains=search_keywords))

        hot_teachers = all_teachers.order_by("-click_nums")[:3]

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

        teacher_nums = all_teachers.count()
        # 对讲师进行分页
        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,
                "hot_teachers": hot_teachers,
                "teacher_nums": teacher_nums,
                "sort": sort,
            })
Exemplo n.º 42
0
    def get(self, request):
        message_board = MessageBoard.objects.order_by('-add_time')

        # 留言用户邮箱信息保密,将其中的部分字符转换成 * 号
        for message in message_board:
            name, addr = message.email.split('@')
            if len(name) > 5:
                name = name[0:3] + '*' * len(name[3:])
            else:
                addr = '*' * len(addr)
            message.email = name + '@' + addr

        # 用户留言分页
        old_message_page = request.session.get('message_board_page', 1)
        try:
            message_page = request.GET.get('message_page', 1)
            request.session['message_board_page'] = message_page
        except PageNotAnInteger:
            message_page = 1
        # 对数据库中所取出的所有对象,进行分页,中间的参数为每页显示的对象个数,设置为 6 个
        paginator = Paginator(message_board,
                              10,
                              request=request,
                              page_type='message_page')
        # 取出对应页的数据
        message_board_page = paginator.page(message_page)
        if old_message_page != message_page:
            message_focus = 'read'
        else:
            message_focus = 'add'
        return render(
            request, 'message.html', {
                'message': message_board_page,
                "focus": "message",
                "message_focus": message_focus
            })
Exemplo n.º 43
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)
Exemplo n.º 44
0
    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 == 'hot':
            all_courses = Course.objects.order_by('-click_nums')
        elif sort == 'students':
            all_courses = Course.objects.order_by('-students')
        # 分页
        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,
            'sort': sort,
            'hot_courses': hot_courses
        })
Exemplo n.º 45
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:
            if sort == "students":
                all_courses = all_courses.order_by("-students")
            elif sort == "courses":
                all_courses = all_courses.order_by("-click_nums")


        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, 3, request=request)

        courses = p.page(page)
        return render(request,'course-list.html',{
            "all_courses":courses,
            "sort":sort,
            "hot_courses":hot_courses
        })
Exemplo n.º 46
0
    def get(self, request):
        current_page = 'mymessage'
        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, 5, request=request)

        messages = p.page(page)
        return render(request, 'usercenter-message.html', {
            "messages": messages,
            "current_page": current_page
        })
Exemplo n.º 47
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")
     # 搜索功能
     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,
         })
Exemplo n.º 48
0
    def get(self, request, *args, **kwargs):
        all_teacher = Teacher.objects.all()
        hot_teacher = all_teacher.order_by('-click_nums')[:3]
        teacher_count = all_teacher.count()
        # 教师排序
        sort = request.GET.get('sort', '')
        if sort == 'hot':
            all_teacher = all_teacher.order_by('-click_nums')

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

        p = Paginator(all_teacher, per_page=1, request=request)
        teacher = p.page(page)
        return render(
            request, 'teachers-list.html', {
                'all_teacher': teacher,
                'sort': sort,
                'hot_teacher': hot_teacher,
                'teacher_count': teacher_count,
            })
Exemplo n.º 49
0
    def get(self, request):
        all_teachers = Teacher.objects.all()

        sort = request.GET.get('sort', '')
        if sort == 'hot':
            all_teachers = all_teachers.order_by('-click_nums')

        sorted_teachers = Teacher.objects.all().order_by('click_nums')[:3]

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

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

        teachers = p.page(page)

        return render(
            request, 'teachers-list.html', {
                'all_teachers': teachers,
                'sort': sort,
                'sorted_teachers': sorted_teachers
            })
Exemplo n.º 50
0
    def get(self, request):
        all_blog = Blog.objects.all().order_by('-create_time')
        # 博客、标签、分类数目统计
        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(all_blog, 5, request=request)
        all_blog = p.page(page)

        return render(
            request, 'archive.html', {
                'all_blog': all_blog,
                'blog_nums': blog_nums,
                'cate_nums': cate_nums,
                'tag_nums': tag_nums,
            })
Exemplo n.º 51
0
 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
     p = Paginator(all_courses, 3, request=request)
     courses = p.page(page)
     context = {
         "all_courses": courses,
         "hot_courses": hot_courses,
         "sort": sort
     }
     return render(request, 'course/course-list.html', context)
Exemplo n.º 52
0
    def get(self, request):
        current_page = "open_course"
        all_courses = Course.objects.all().order_by("-add_time")

        # 热门课程
        hot_courses = Course.objects.all().order_by("-click_nums")[:3]

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

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

        # 分页
        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,
                "current_page": current_page,
                "sort": sort,
                "hot_courses": hot_courses,
            })
Exemplo n.º 53
0
    def get(self, request):
        if not request.user.is_authenticated:
            return redirect(reverse('login'))
        hc = HatChange()
        diy = HatDiy()

        user_id = request.user
        user_obj = UserProfile.objects.filter(username=user_id)[0]
        all_change_hat = user_obj.hatchange_set.all()
        ord_onums = all_change_hat.count()

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

        p = Paginator(all_change_hat, 10, request=request)

        ords = p.page(page)
        return render(request, 'order-list.html', {
            'all_change_hat': ords,
            'ord_onums': ord_onums,
        })
Exemplo n.º 54
0
    def get(self, request):
        # 获取个人消息及全站消息
        all_messages = UserMessage.objects.filter(
            Q(user=0) | Q(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()

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

        # Provide Paginator with the request object for complete querystring generation

        p = Paginator(all_messages, 1, request=request)
        messages = p.page(page)

        return render(request, 'usercenter-message.html',
                      {'messages': messages})
Exemplo n.º 55
0
    def get(self, request):

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

        #清空未读消息的记录
        all_unread_messages = UserMessage.objects.filter(has_read=False,
                                                         user=request.user.id)
        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_message, 5, request=request)

        all_message = p.page(page)

        return render(request, 'usercenter-message.html', {
            'all_message': all_message,
        })
Exemplo n.º 56
0
    def get(self, request):
        # 判断用户是否登录
        # if not request.user.is_authenticated:
        #     f = {'status': 'fail', 'msg': '用户未登录'}
        #     return HttpResponse(json.dumps(f), content_type='application/json')

        article_list = []
        fav_articles = UserFav.objects.filter(user=request.user, fav_type=1)
        for fav_article in fav_articles:
            article_id = fav_article.fav_id
            article = Article.objects.get(id=article_id)
            article_list.append(article)

        # 分页显示
        try:
            page = request.GET.get('page', 1)
        except PageNotAnInteger:
            page = 1
        p = Paginator(article_list, 10, request=request)  # 第二个参数表示每页显示的个数
        all_fav_articles = p.page(page)

        return render(request, 'manage_user_fav.html', {
            'all_fav_articles': all_fav_articles,
        })
Exemplo n.º 57
0
    def get(self, request):
        """我的消息显示"""
        # 查询出用户的个人消息
        # user_message = UserMessage.objects.filter(user=request.user)
        user_message = request.user.usermessage_set.all().order_by('-add_time')

        for message in user_message.filter(has_read=False):
            message.has_read = True
            message.save()

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

        # 对排序后的全部课程进行分页
        p = Paginator(user_message, per_page=2, request=request)
        page_message = p.page(page)

        # 返回数据
        return render(request, 'usercenter-message.html', {'user_message': user_message, 'active': 'message', 'page_message': page_message})
Exemplo n.º 58
0
    def get(self, request):
        links = Link.objects.all()
        cooperators = Cooperator.objects.all()
        keyword = request.GET.get('keyword',None)
        if not keyword:
            error_msg = "请输入关键字!"
            return render(request,"blog/search.html",locals())
        all_post = Post.objects.filter(Q(title__icontains=keyword)|Q(content__contains=keyword)|Q(excerpt__contains=keyword),Q(topped=False))

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

        # Provide Paginator with the request object for complete querystring generation
        p = Paginator(all_post, 2, request=request)
        posts = p.page(page)

        return render(request, 'blog/search.html', {
            "posts": posts,
            "links": links,
            "cooperators":cooperators,
        })
Exemplo n.º 59
0
    def get(self, request):
        all_teacher = Teacher.objects.all()

        search_keywords = request.GET.get('keywords', '')
        if search_keywords:  #如果获取到用户输入的值
            all_teacher = all_teacher.filter(
                Q(name__icontains=search_keywords)
                | Q(work_company=search_keywords)
                | Q(points__icontains=search_keywords))

        #人气排序
        sort = request.GET.get('sort', '')
        if sort:  #如果点击了
            all_teacher = all_teacher.order_by('-click_nums')
        #教师排行
        sorted_teachers = all_teacher.order_by('-click_nums')[:3]

        #分页
        # 分页功能
        try:
            page = request.GET.get('page', 1)  # 获取n(page=n),默认显示第一页
        except PageNotAnInteger:
            page = 1  # 出现异常显示第一页
        p = Paginator(all_teacher, 1, request=request)  # 进行分页,每5个作为一页
        teachers = p.page(page)  # 获取当前页面

        # 总共有多少老师使用count进行统计
        teacher_count = all_teacher.count()

        return render(
            request, 'teachers-list.html', {
                "all_teacher": teachers,
                "sort": sort,
                "teacher_count": teacher_count,
                "sorted_teachers": sorted_teachers,
            })
Exemplo n.º 60
0
    def get(self, request):
        all_courses = Course.objects.all().order_by('-add_time')
        hot_courses = all_courses.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')

        org_nums = all_courses.count()

        # 分页
        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,
            'sort': sort,
            'hot_courses': hot_courses,
        })