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, })
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, })
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, })
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, })
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, })
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
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})
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 })
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)
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, })
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)
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, })
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, })
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 })
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)
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 })
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)
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, } )
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)
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())
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)
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, })
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, })
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, })
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())
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, })
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
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)
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))
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)
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, })
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 })
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)
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())
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 })
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, })
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 })
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 })
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, })
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)
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, })
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 })
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)
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 })
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 })
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 })
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, })
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, })
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 })
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, })
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)
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, })
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, })
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})
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, })
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, })
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})
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, })
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, })
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, })