2017-12-03 4 views
0

に私は私のエラーを管理する方法を見つけ出すためにトラブルを抱えていた場合に使用して:文は、一般的な詳細ビュー

私のアプリは、そのように構築されています。

  1. ユーザーがプロジェクト
  2. を作成ユーザーはプロジェクトにリダイレクトされます 詳細ページ
  3. ユーザーはチームを作成し、そのプロジェクトにメンバーを追加するように求められます
  4. ユーザーはプロジェクトの詳細ページに再度リダイレクトされます今すぐチーム名とすべてのチームメンバーのリストを表示します。私の問題は、私は私のHTML

    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 
    

    が、何のチームとメンバーはまだありませんので、私はプロジェクトを作成するときに、今、私は "エラーを取得していますにレンダリングするcontext_dataを追加したいということです

NoneType 'オブジェクトにはメンバー'属性 'がありません

どうすればいいですか?ビューにifステートメントを追加する方法はありますか?

+0

ただ、そのオブジェクトがTEAM_IDを持って確認してください? – 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をキャッチすることができます:あなたがあなたのモデルを追加することができ

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

tryを除いて試してみてください! – Ben2pop

関連する問題