0
나는 몇 시간 동안이 작업에 매달 렸습니다. 아마 뭔가 간단한 것을 놓치고 있을지 모르겠지만 확실하지 않습니다. 어떤 도움이라도 대단히 감사합니다.예외 값 : Django 클래스 기반 View 객체에는 'campaignId'속성이 없습니다.
최근 Django 프로젝트의 데이터베이스를 MongoDB에서 Neo4J로 변경했습니다. https://gist.github.com/joefusaro/820270c1ff0999d3d3fd
에서 : 여기
Exception Value: 'TweetListView' object has no attribute 'campaignId'
전체 역 추적 및 관련 코드 : 마이그레이션 프로세스 동안, 나는 등,
역 추적 내가보고 오전보기, URL 중 일부를 수정하고 campaign_list.html
<a href="{% url 'campaigns:tweets:tweet_list' campaignId=campaign.campaignId %}" type="button" class="btn btn-default"></a>
캠페인/urls.py
from django.conf.urls import patterns, url, include
urlpatterns = patterns(
'',
url(
r'^(?P<campaignId>\d+?)/tweets/',
include('providers.twitter.urls', namespace='tweets')
),
트위터/urls.py
from django.conf.urls import patterns, url
from .views import TweetListView
urlpatterns = patterns(
'',
url(
r'^list/$',
TweetListView.as_view(),
name='tweet_list'
),
트위터/views.py은 전체 역 추적을 게시 한 경우가 더 쉬웠을 것
class TweetListView(LoginRequiredMixin, TemplateView): # CampaignOwnerPermission,
'''Displays TwitterPosts relevant to a Campaign; The campaignId variable
is passed to get_object request method from the campaign_list page.'''
template_name = 'twitter/stream.html'
paginate_by = settings.PAGINATE_BY_VIEWS
context_object_name = 'tweets'
page_kwarg = 'page'
object = None
def get_object(self):
if self.object is None:
# Return all TwitterPosts for Campaign designated by campaignId
self.object = GetTwitterPostsForCampaign(self.campaignId)
return self.object
def paginate_queryset(self, object, store, page_size):
paginator = TweetPaginator(
object, store, page_size
)
page = self.request.GET.get(self.page_kwarg) or 1
try:
page_number = int(page)
except ValueError:
if page == 'last':
page_number = paginator.num_pages
elif page == 'first':
page_number = 1
else:
raise Http404(_('Page is not found.'))
try:
page = paginator.page(page_number)
return (paginator, page, page.object_list, page.has_other_pages())
except InvalidPage as e:
raise Http404(
_('Invalid page (%(page_number)s): %(message)s') % {
'page_number': page_number,
'message': str(e)
}
)
def get_context_data(self, **kwargs):
object = self.get_object()
page_size = self.paginate_by
context_object_name = self.context_object_name
if page_size:
paginator, page, queryset, is_paginated = self.paginate_queryset(
object, self.kwargs['store'], page_size
)
context = {
'paginator': paginator,
'page_obj': page,
'is_paginated': is_paginated,
'object_list': queryset
}
else:
raise InvalidPage
if context_object_name is not None:
context[context_object_name] = queryset
context.update(kwargs)
context['campaign'] = self.campaign
return super(TweetStoreListView, self).get_context_data(**context)