2016-09-27 75 views
0

我正在修复百日草博客应用程序的问题,并弹出与聚合器和条目相关的错误。以下是代码,如果有人有一个建议:Django百日草博客错误条目

def get_authors(context, template='zinnia/tags/authors.html'): 
    """ 
    Return the published authors. 
    """ 

    return {'template': template, 
      'authors': Author.published.all().annotate(
       count_entries_published=Count('entries')), 
      'context_author': context.get('author')} 

在上面,我不认为造成任何问题,但下面是可能会引起大惊小怪的倒数第二行的代码。

def get_queryset(self): 
     """ 
     Return a queryset containing published entries. 
     """ 
     now = timezone.now() 
     return super(
      EntryRelatedPublishedManager, self).get_queryset().filter(
      models.Q(entries__start_publication__lte=now) | 
      models.Q(entries__start_publication=None), 
      models.Q(entries__end_publication__gt=now) | 
      models.Q(entries__end_publication=None), 
      entries__status=PUBLISHED, 
      entries__sites=Site.objects.get_current() 
      ).distinct() 

请提出一个解决方案,因为整体百日草是一个了不起的应用程序,但有一个错误的几乎无用。回购所有者已经得到了大量的用户抱怨。 Python2和PYthon3的错误都是一样的。

对于愿意为此工作的慷慨编码人员,回购协议位于https://github.com/Fantomas42/django-blog-zinnia/issues

Traceback: 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\core\handlers\exception.py" in inner 
    39.    response = get_response(request) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\core\handlers\base.py" in _legacy_get_response 
    249.    response = self._get_response(request) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\core\handlers\base.py" in _get_response 
    217.     response = self.process_exception_by_middleware(e, request) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\core\handlers\base.py" in _get_response 
    215.     response = response.render() 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\response.py" in render 
    109.    self.content = self.rendered_content 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\response.py" in rendered_content 
    86.   content = template.render(context, self._request) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\backends\django.py" in render 
    66.    return self.template.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render 
    208.      return self._render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in _render 
    199.   return self.nodelist.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render 
    994.     bit = node.render_annotated(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render_annotated 
    961.    return self.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\loader_tags.py" in render 
    174.   return compiled_parent._render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in _render 
    199.   return self.nodelist.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render 
    994.     bit = node.render_annotated(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render_annotated 
    961.    return self.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\loader_tags.py" in render 
    174.   return compiled_parent._render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in _render 
    199.   return self.nodelist.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render 
    994.     bit = node.render_annotated(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render_annotated 
    961.    return self.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\loader_tags.py" in render 
    174.   return compiled_parent._render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in _render 
    199.   return self.nodelist.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render 
    994.     bit = node.render_annotated(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render_annotated 
    961.    return self.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\loader_tags.py" in render 
    70.     result = block.nodelist.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render 
    994.     bit = node.render_annotated(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\base.py" in render_annotated 
    961.    return self.render(context) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\template\library.py" in render 
    225.   _dict = self.func(*resolved_args, **resolved_kwargs) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django_blog_zinnia-0.18-py2.7.egg\zinnia\templatetags\zinnia.py" in get_authors 
    85.    'authors': Author.published.all().annotate(

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\manager.py" in all 
    160.   return self.get_queryset() 

File "C:\Users\Shazia\zinblog\lib\site-packages\django_blog_zinnia-0.18-py2.7.egg\zinnia\managers.py" in get_queryset 
    107.    entries__sites=Site.objects.get_current() 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\query.py" in filter 
    796.   return self._filter_or_exclude(False, *args, **kwargs) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\query.py" in _filter_or_exclude 
    814.    clone.query.add_q(Q(*args, **kwargs)) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\sql\query.py" in add_q 
    1227.   clause, _ = self._add_q(q_object, self.used_aliases) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\sql\query.py" in _add_q 
    1247.      current_negated, allow_joins, split_subq) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\sql\query.py" in _add_q 
    1253.      allow_joins=allow_joins, split_subq=split_subq, 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\sql\query.py" in build_filter 
    1133.   lookups, parts, reffed_expression = self.solve_lookup_type(arg) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\sql\query.py" in solve_lookup_type 
    1019.   _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) 

File "C:\Users\Shazia\zinblog\lib\site-packages\django-1.10.1-py2.7.egg\django\db\models\sql\query.py" in names_to_path 
    1327.          "Choices are: %s" % (name, ", ".join(available))) 

Exception Type: FieldError at /weblog/ 
Exception Value: Cannot resolve keyword 'entries' into field. Choices are: comment_comments, comment_flags, date_joined, email, first_name, groups, id, is_active, is_staff, is_superuser, last_login, last_name, logentry, password, user_permissions, username 
+0

'Count('entries')'不应该在'get_authors(**)'中计数(条目)'? –

+0

条目是一个字符串。所以这是正确的演示。 –

+0

为什么你检索所有其他实体'entries = Entry.objects.all()',因为你从来没有在这种情况下使用它们。 –

回答

2

尝试在zinnia之后的INSTALLED_APPS设置中注册django_comments之前。

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.admin', 
    'django.contrib.sites', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.contenttypes', 
    'mptt', 
    'tagging', 
    'zinnia', 
    'django_comments', 
) 

得到了回购所有者的这个解决方案。检查Github上的问题。

+0

非常感谢你......在这个问题上花了我几天的时间。 –