def view_station(request, station_id):
station = get_object_or_404(Station, abbreviation=station_id)
incidents = Incident.objects.filter(
station__id=station.id,
).order_by('-incident_dt')
incidents_count = len(incidents)
paginator = Paginator(incidents, 25)
page = request.GET.get('page')
try:
incidents = paginator.page(page)
except PageNotAnInteger:
incidents = paginator.page(1)
except EmptyPage:
incidents = paginator.page(paginator.num_pages)
return render(request, 'station.html', {'incidents_count': incidents_count,
'station': station,
'incidents': incidents})
python类PageNotAnInteger()的实例源码
def incidents_for_tag(request, slug):
tag = get_object_or_404(Tag, slug=slug)
incidents = Incident.objects.filter(
tags__id=tag.id,
).order_by('-incident_dt')
incidents_count = len(incidents)
paginator = Paginator(incidents, 25)
page = request.GET.get('page')
try:
incidents = paginator.page(page)
except PageNotAnInteger:
incidents = paginator.page(1)
except EmptyPage:
incidents = paginator.page(paginator.num_pages)
return render(request, 'tag.html', {'tag': tag, 'incidents': incidents,
'incidents_count': incidents_count})
# pylint: disable=too-many-ancestors
def get_context(self, request):
context = super(HutIndexPage, self).get_context(request)
page = request.GET.get('page')
tag = request.GET.get('tag')
pages = HutPage.objects.child_of(self).live()
if tag:
pages = pages.filter(facilities__slug__iexact=tag)
context['tag'] = Tag.objects.get(slug__iexact=tag)
paginator = Paginator(pages, 10) # Show 10 huts per page
try:
pages = paginator.page(page)
except PageNotAnInteger:
pages = paginator.page(1)
except EmptyPage:
pages = paginator.page(paginator.num_pages)
context['children'] = pages
return context
def index(request):
template = get_template('index.html')
attractions_data = Attractions.objects.all()
paginator = Paginator(attractions_data, 5) # Show 10 content per page
page = request.GET.get('page')
try:
content = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
content = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
content = paginator.page(paginator.num_pages)
index = content.number
max_index = len(paginator.page_range)
start_index = max_index - 7 if index >= max_index - 5 else index - 1 if index != 1 else 1
end_index = max_index + 1 if index >= max_index - 6 else index + 7 if index != 1 else index + 8
page_range = range(start_index, end_index)
html = template.render(locals())
return HttpResponse(html)
def post_list(request, tag_slug=None):
object_list = Post.published.all()
tag = None
if tag_slug:
tag = get_object_or_404(Tag, slug=tag_slug)
object_list = object_list.filter(tags__in=[tag])
paginator = Paginator(object_list, 3) # 3 posts in each page
page = request.GET.get('page')
try:
posts = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer deliver the first page
posts = paginator.page(1)
except EmptyPage:
# If page is out of range deliver last page of results
posts = paginator.page(paginator.num_pages)
return render(request,'blog/post/list.html',{'page': page, 'posts': posts, 'tag':tag})
def image_list(request):
images = Image.objects.all()
paginator = Paginator(images, 8)
page = request.GET.get('page')
try:
images = paginator.page(page)
images_by_popularity = Image.objects.order_by('-total_likes')
except PageNotAnInteger:
if request.is_ajax():
# If page is not an integer deliver the first page
images = paginator.page(1)
except EmptyPage:
if request.is_ajax():
# If the request AJAX and the page is out of range
# return an empty page
return HttpResponse('')
# If page is out of range deliver last page of results
images = paginator.page(paginator.num_pages)
if request.is_ajax():
return render(request, 'images/image/list_ajax.html',{'section': 'images', 'images': images})
return render(request, 'images/image/list.html', {'section': 'images', 'images': images})
def album_detail(request, pk):
album = get_object_or_404(Album, pk=pk)
photo_list = album.photo_set.all()
paginator = Paginator(photo_list, 4)
page = request.GET.get('page')
try:
photos = paginator.page(page)
except PageNotAnInteger:
photos = paginator.page(1)
except EmptyPage:
photos = paginator.page(paginator.num_pages)
context = {
'album': album,
'photos': photos,
}
# template_file = 'photo/album_detail.html'
template_file = 'photo/ajax_album_detail.html'
return render(request, template_file, context)
def html_page(request):
service_name = request.GET.get('service_name')
log_path = dao_config.log_dir_master
service_name_path = log_path + service_name
all_file = []
for i in os.listdir(service_name_path):
file_path = service_name_path +'/' + i
if os.path.isfile(file_path):
all_file.append([i,file_path])
print(all_file)
all_file = sorted(all_file, key=lambda file_name: file_name[1])
paginator = Paginator(all_file, 10) # Show 25 contacts per page
page = request.GET.get('page')
try:
contacts = paginator.page(page)
except PageNotAnInteger:
contacts = paginator.page(1)
except EmptyPage:
contacts = paginator.page(paginator.num_pages)
return render(request, 'cat_down_log.html', {"contacts": contacts,'service_name':[service_name]})
def home(request):
# TODO: Order by groupname
group_objs = list(Group.objects.all())
paginator = Paginator(group_objs, 10)
page = request.GET.get('page')
try:
groups = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
groups = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
groups = paginator.page(paginator.num_pages)
ctx = {
"user": request.user,
"groups": groups,
"group_count": len(group_objs)
}
return render(request, 'groups/index.html', ctx)
def home(request):
# TODO: Order by username
user_objs = list(User.objects.all())
paginator = Paginator(user_objs, 10)
page = request.GET.get('page')
try:
users = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
users = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
users = paginator.page(paginator.num_pages)
ctx = {
"user": request.user,
"users": users,
"user_count": len(user_objs)
}
return render(request, 'users/index.html', ctx)
def get_pager(request, qs, per_page=25, page=None):
"""
Return django paginator for queryset.
"""
paginator = Paginator(qs, per_page)
if page is None:
page = request.GET.get('page', 1)
try:
pager = paginator.page(page)
except PageNotAnInteger:
pager = paginator.page(1)
except EmptyPage:
pager = paginator.page(paginator.num_pages)
return pager
def campaign_detail(request, pk):
''' Renders a template showing the photo results of the campaign. 20 results per page,
with pagination capabilities at the bottom of each page.'''
campaign = get_object_or_404(Campaign, pk=pk)
# Query the DB to find all Photo records associated with this campaign
results = Photo.objects.filter(campaign_number=pk)
# Set up the pagination of the results
paginator = Paginator(results, 20) # Show 20 contacts per page
page = request.GET.get('page')
try:
page_content = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
page_content = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
page_content = paginator.page(paginator.num_pages)
return render(request, 'ig_miner_app/campaign_detail.html', {'campaign': campaign,
'results':results,
'page_content': page_content})
def project_list(request, language):
""" Returns the projects list for a given language """
language = get_object_or_404(Language, name=language)
paginator = Paginator(language.project_set.order_by('-publish_date'), 6)
if 'page' not in request.GET:
page = 1
else:
page = request.GET['page']
try:
projects = paginator.page(page)
except PageNotAnInteger:
projects = paginator.page(1)
except EmptyPage:
projects = paginator.page(paginator.num_pages)
context = {
'projects': projects,
'language': language,
}
return render(request, 'projects_page.html', context)
def matrix(request):
queue_matrix = OrmQ.objects.all().order_by('lock')
complete_matrix = Task.objects.all().filter(
func__exact='nimbus.tasks.crawler_matrix_job',
)
paginator = Paginator(complete_matrix, 6) # Show 6 contacts per page
page = request.GET.get('page')
try:
complete_matrix = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
complete_matrix = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
complete_matrix = paginator.page(paginator.num_pages)
return render(request, 'nimbus/task_matrix_list.html', {
'queue_matrix': queue_matrix,
'complete_matrix': complete_matrix
})
def get_context_data(self, *args, **kwargs):
context = super().get_context_data()
title = self.request.GET.get('title')
planet = self.request.GET.get('planet')
page = self.request.GET.get('page', 1)
resource_qs = self.get_resource_queryset(title, planet)
resource_link_qs = self.get_resource_link_queryset(title, planet)
resources = [r for r in resource_qs]
resources.extend([r for r in resource_link_qs])
paginator = Paginator(resources, self.paginate_by)
try:
current_resources = paginator.page(page)
except PageNotAnInteger:
current_resources = paginator.page(1)
except EmptyPage:
current_resources = paginator.page(paginator.num_pages)
context['resources'] = current_resources
return context
def get_context(self, request):
# Get blogs
blogs = self.blogs
# Filter by tag
tag = request.GET.get('tag')
if tag:
blogs = blogs.filter(tags__name=tag)
# Pagination
page = request.GET.get('page')
paginator = Paginator(blogs, 10) # Show 10 blogs per page
try:
blogs = paginator.page(page)
except PageNotAnInteger:
blogs = paginator.page(1)
except EmptyPage:
blogs = paginator.page(paginator.num_pages)
# Update template context
context = super(BlogIndexPage, self).get_context(request)
context['blogs'] = blogs
return context
def get_context_data(self, **kwargs):
context = super(PaginationView, self).get_context_data(**kwargs)
lines = []
for i in range(200):
lines.append('Line %s' % (i + 1))
paginator = Paginator(lines, 10)
page = self.request.GET.get('page')
try:
show_lines = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
show_lines = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
show_lines = paginator.page(paginator.num_pages)
context['lines'] = show_lines
return context
def project_list(request, language):
""" Returns the projects list for a given language """
language = get_object_or_404(Language, name=language)
paginator = Paginator(language.project_set.order_by('-publish_date'), 6)
if 'page' not in request.GET:
page = 1
else:
page = request.GET['page']
try:
projects = paginator.page(page)
except PageNotAnInteger:
projects = paginator.page(1)
except EmptyPage:
projects = paginator.page(paginator.num_pages)
context = {
'projects': projects,
'language': language,
}
return render(request, 'projects_page.html', context)
def get_context(self, request):
# Get posts
posts = self.posts
# Pagination
page = request.GET.get('page')
paginator = Paginator(posts, 10)
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
context = super(NewsIndexPage, self).get_context(request)
context['posts'] = posts
return context
def home(request, page=1):
articles = Article.objects.all().order_by('-create_time')
# ??
paginator = Paginator(articles, 15) # ??15?
try:
articles = paginator.page(page)
except PageNotAnInteger:
articles = paginator.page(1)
except EmptyPage:
articles = paginator.page(paginator.num_pages)
for article in articles:
article.tags = article.tags.split()
tag_info_list = get_tag_info()
date_list = Article.objects.datetimes('create_time', 'month', order='DESC')
return render(request, 'index.html', {'html_title': '??', 'articles': articles, 'tag_info_list': tag_info_list,
'date_list': date_list})