2014-11-27 2 views
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) 

답변

0

하는 오류가 발생한 위치를 정확히 보여줍니다.

그럼에도 불구하고, 아마 시야의 get_object 방법에서 일어나고, 세 번째 행은 다음과 같습니다

self.object = GetTwitterPostsForCampaign(self.kwargs['campaignId']) 
관련 문제