def render(self, context):
url = None
# get the page number we're linking to from the context
page_num = self.page_num.resolve(context)
try:
# determine what view we are using based upon the path of this page
view, args, kwargs = resolve(context['request'].path)
except (Resolver404, KeyError) as err:
print err
raise ValueError('Invalid pagination page.')
else:
# set the page parameter for this view
kwargs['page'] = page_num
# get the new URL from Django
url = reverse(view, args=args, kwargs=kwargs)
if self.varname:
# if we have a varname, put the URL into the context and return nothing
context[self.varname] = url
return ''
# otherwise, return the URL directly
return url
评论列表
文章目录