2017-12-03 1 views
0

내 오류를 관리하는 방법을 알아낼 수있는 일반적인 상세보기 문 :경우 내가 문제가 있어요

내 응용 프로그램은 그런 식으로 내장되어

:

  1. 사용자가 프로젝트를 생성을
  2. 사용자가 프로젝트로 리디렉션 됨 세부 정보 페이지
  3. 팀을 생성하고 해당 프로젝트에 멤버를 추가하라는 메시지가 나타납니다.
  4. 사용자가 프로젝트 세부 정보 페이지로 다시 리디렉션됩니다 이제 팀 이름과 모든 팀 구성원의 목록을 렌더링합니다.

내 문제는 내가 아직 팀 구성원이 없기 때문에 프로젝트를 만들 때

def get_context_data(self, **kwargs): 
    context = super(ProjectDetailView, self).get_context_data(**kwargs) 
    team_name = Project.objects.get(id=self.kwargs['pk']).team_id.members.all() 
    context['team_name'] = team_name 
    return context 

그러나 지금, 나는 오류 '를 얻고 내 HTML에 렌더링하는 context_data를 추가하고 싶어한다는 것입니다 NoneType '객체에'멤버 '속성이 없습니다.

어떻게해야합니까? 보기에 if 문을 추가하는 방법이 있습니까?

+0

당신이 모델을 추가 할 수 있습니까? – vmonteco

+0

또한 어떤보기에 문제가 있습니까? – vmonteco

답변

0

이 경우 if 문을 사용할 수 있습니다.

obj = Project.objects.get(id=self.kwargs['pk']) 
if obj.team_id: 
    team_name = obj.team_id.members.all() 
    context['team_name'] = team_name 
return context 

을뿐만 아니라이 같은 try except 구문 AttributeError을 잡을 수 있습니다 : 그냥 그 목적은 team_id있다 체크

try: 
    team_name = Project.objects.get(id=self.kwargs['pk']).team_id.members.all() 
    context['team_name'] = team_name 
except AttributeError: 
    pass 
return context 
+0

트릭을 제외하고 시도해라. thx는 당신을 매우 많이 만든다! – Ben2pop

관련 문제