Django的无尽分页在生产环境中不工作,但在开发中工作



我使用django-endless-pagination与twitter风格为我的网站,它在开发中工作得很好,但当我移动到生产它甚至不显示条目。我正在使用webfaction,下面是我所采取的行动列表。

1) PYTHONPATH=$HOME/webapps/csiop/lib/python2.7 easy_install-2.7——install-dir=$HOME/webapps/csiop/lib/python2.7——script-dir=$HOME/webapps/csiop/bin django-endless-pagination2) python manage.py syncdb3)在settings.py和settings.py

中添加endless_pagination
 PAGINATION_SETTINGS = {
  'PAGE_RANGE_DISPLAYED': 10,
  'MARGIN_PAGES_DISPLAYED': 2,
 }

4)我的views.py修改如下

   def homepage(request):
       item_list = items.objects.filter(show_on_website=True)
       template = 'homepage.html'
       page_template = 'home_page_index.html'
       if request.is_ajax():
             template = page_template
       return render_to_response(template,
         {'page_template': page_template,
         'item_list': item_list},
       context_instance=RequestContext(request))

5)我的模板如下所示。

Homepage.html: -

    <h2>Entries:</h2>
    {% include page_template %}
    {% block js %}
       {{ block.super }}
       <script src="http://code.jquery.com/jquery-latest.js"></script>
       <script src="{{ STATIC_URL }}endless_pagination/js/endless-pagination.js"></script>
       <script>$.endlessPaginate();</script>
    {% endblock %}

home_page_index.html: -

   {% load endless %}
   {% lazy_paginate entries %}
      {% for entry in entries %}
        {# your code to show the entry #}
      {% endfor %}
   {% show_more " " %}

上面的代码在我的开发中工作得很好,但在生产中不行。有人能帮我吗?

编辑:-如果我在开发环境中将调试模式设置为False,我会得到以下错误。我在网站上使用django-seo,它似乎在抱怨,但我不确定这个错误到底是什么。

  Traceback (most recent call last):
  File            "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
  self.result = application(self.environ, self.start_response)
  File "/Users/django1.5/django1.5_ve/lib/python2.7/site-  packages/django/core/handlers/wsgi.py", line 255, in __call__
  response = self.get_response(request)
  File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/core/handlers/base.py", line 178, in get_response
  response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/core/handlers/base.py", line 224, in handle_uncaught_exception
  return callback(request, **param_dict)
  File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/utils/decorators.py", line 91, in _wrapped_view
  response = view_func(request, *args, **kwargs)
  File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/views/defaults.py", line 41, in server_error
   return http.HttpResponseServerError(template.render(Context({})))
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/template/base.py", line 140, in render
   return self._render(context)
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
   return self.nodelist.render(context)
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/template/base.py", line 830, in render
   bit = self.render_node(node, context)
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node
   return node.render(context)
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/template/loader_tags.py", line 124, in render
   return compiled_parent._render(context)
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
   return self.nodelist.render(context)
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/template/base.py", line 830, in render
   bit = self.render_node(node, context)
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node
   return node.render(context)
   File "/Users/django1.5/django1.5_ve/lib/python2.7/site-packages/rollyourown/seo/templatetags/seo.py", line 25, in render
   raise template.TemplateSyntaxError(msg)
   TemplateSyntaxError: {% get_metadata %} needs some path information.
    Please use RequestContext with the django.core.context_processors.request context  processor.
    Or provide a path or object explicitly, eg {% get_metadata for path %} or {%        get_metadata for object %}
   [09/Apr/2013 18:22:49] "GET / HTTP/1.1" 500 59

谢谢

当你关闭调试模式时,Django会停止为你处理静态文件。在远程主机上,您需要在settings和manage.py collectstatic中设置STATIC_ROOT路径。你也可以看看这个问题。

我重新安装了django-endless-pagination使用pip而不是easy-install,它现在工作正常。看起来问题是因为我安装了easy-install之前没有-Z。

最新更新