這裏有一個奇怪的錯誤,也許有人能幫助追查來源,因爲它是試圖延長Django的CMS項目&嘗試使用使用寫了一些邏輯作爲項目,我不是完全清楚的一部分總之,使用:在意見泛型列表視圖提高屬性錯誤:「‘功能’對象有沒有屬性‘_clone’
urls.py
======================
from django.conf.urls.defaults import *
from cmsplugin_flat_news.models import News
'''RETURNING _CLONE ERROR WHEN IMPLEMENTED
def get_news():
return News.published.all()
news_dict = {
'queryset': get_news,
}
news_list_dic = {
'queryset': get_news,
'paginate_by': 50,
}
'''
# NEXT SECTION FUNCTIONS BUT NEEDS SERVER RESTART TO SEE NEW POSTS.
#CHANGING TO JUST News.published.all RAISES SAME ISSUE AS USING WRAPPER
#SOLUTION ABOVE. SEE: http://docs.djangoproject.com/en/dev/topics/db/queries/#caching-and-querysets
#& EXAMPLE HERE: http://docs.djangoproject.com/en/dev/topics/generic-views/#adding-extra-context
news_dict = {
'queryset': News.published.all(),
}
news_list_dic = {
'queryset': News.published.all(),#SAME ISSUE
'paginate_by': 50,
}
urlpatterns = patterns('django.views.generic.list_detail',
(r'^$', 'object_list', news_list_dic),
(r'^(?P<page>[0-9]+)/$', 'object_list', dict(news_list_dic)),
url(r'^(?P<slug>[-\w]+)/$', 'object_detail', news_dict, name='news_view'),
)
models.py
======================
class PublishedNewsManager(models.Manager):
#Filters out all unpublished news and news with a publication date in the future
def get_query_set(self):
return super(PublishedNewsManager, self).get_query_set() \
.filter(is_published=True) \
.filter(pub_date__lte=datetime.datetime.now())
class News(models.Model):
title = models.CharField(_('Title'), max_length=255)
slug = models.SlugField(_('Slug'), unique_for_date='pub_date')
author = models.ForeignKey(User)
description = models.TextField(_('Description'), blank=True)
image = generic.GenericRelation('NewsImage', blank=True, null=True)
content = models.TextField(_('Content'), blank=True)
tags = TagField()
is_published = models.BooleanField(_('Published'), default=False)
pub_date = models.DateTimeField(_('Publication date'), default=datetime.datetime.now())
created = models.DateTimeField(auto_now_add=True, editable=False)
updated = models.DateTimeField(auto_now=True, editable=False)
published = PublishedNewsManager()
objects = models.Manager()
見問題:基本上,通過實施「正確」的解決方案,額外的上下文添加到的意見提出的錯誤。錯誤是Attribute Error: "'function' object has no attribute '_clone'"
嘗試:News.published.all而不是News.published.all()
引發錯誤w hether用作包裝函數的一部分,或者直接在urlpattern的queryset部分中使用。
一定是失去了一些東西明顯?認爲這是爲了使PublishedNewsManager不會將對象作爲字典返回,或者調整代碼以正確地將對象返回給視圖。
感謝insin,這只是門票! – Chris 2010-04-12 11:58:17