2016-09-27 68 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

非常感謝你......在這個問題上花了我幾天的時間。 –