我无法弄清楚如何管理我的错误:
我的应用就是这样构建的:
我的问题是我想在我的HTML中添加一个context_data来呈现
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
但是现在当我创建一个项目,因为还没有团队和成员,我收到一个错误' NoneType'对象没有属性'成员'
我该怎么办?有没有办法在视图中添加if语句?
答案 0 :(得分:0)
在这种情况下,您可以使用if语句。只需检查该对象是否有team_id:
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
但您也可以使用AttributeError
语法捕获try except
,如下所示:
try:
team_name = Project.objects.get(id=self.kwargs['pk']).team_id.members.all()
context['team_name'] = team_name
except AttributeError:
pass
return context