Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django问题视图_Python_Django_Django Templates_Django Views_Django Generic Views - Fatal编程技术网

Python Django问题视图

Python Django问题视图,python,django,django-templates,django-views,django-generic-views,Python,Django,Django Templates,Django Views,Django Generic Views,我有一个Django的一般观点: def post_list(request, page=0, paginate_by=1, **kwargs): page_size = getattr(settings,'BLOG_PAGESIZE', paginate_by) return list_detail.object_list( request, queryset=Post.objects.published(), paginate_by=page_size, pa

我有一个Django的一般观点:

def post_list(request, page=0, paginate_by=1, **kwargs):
page_size = getattr(settings,'BLOG_PAGESIZE', paginate_by)
return list_detail.object_list(
    request,
    queryset=Post.objects.published(),
    paginate_by=page_size,
    page=page,
    **kwargs
)
post_list.__doc__ = list_detail.object_list.__doc__
我想在今年发送它,以便在模板中使用它。有人能帮我吗?

通过via传递本年度的信息:

from datetime import datetime
year = datetime.now().year

您的核心问题是使用通用视图-

与原始代码相比,您更愿意维护或扩展哪些代码

def post_list(request, page=0, paginate_by=1, **kwargs):
    page_size = getattr(settings,'BLOG_PAGESIZE', paginate_by)
    queryset = Post.objects.published()
    paginator = Paginator(queryset, page_size) 
    objects = paginator.page(page)

    #This stuff is only necessary if you aren't trapping page in the URL conf
    #page = request.GET.get('page')
    #try:
    #    objects = paginator.page(page)
    #except PageNotAnInteger:
    #    # If page is not an integer, deliver first page.
    #    objects = paginator.page(1)
    #except EmptyPage:
    #    # If page is out of range (e.g. 9999), deliver last page of results.
    #    objects = paginator.page(paginator.num_pages)

    return render_to_response('mytemplate.html', {"objects": objects, "year": datetime.now().year}, context=RequestContext(request))