我有一些团体。用户可以是该组的成员。当用户查看群组资料时,如果他是成员,他应该看到有关他自己的信息。它是如何工作的:
class UniverseDetailView(LoggedInMixin, DetailView):
model = Universe
template_name = 'multiuniverse/universe_detail.html'
def get_context_data(self, **kwargs):
context = super(UniverseDetailView, self).get_context_data(**kwargs)
member = Member.objects.get(user=self.request.user, uni=self.object)
context['member'] = member
return context
但是,如果他不是这个阵容的成员,我就会收到错误:
Exception Type: DoesNotExist
Exception Value: Member matching query does not exist.
是否可以在没有get_or_create的情况下获得此上下文?
答案 0 :(得分:0)
如果找不到给定参数的对象,
get()
会引发DoesNotExist
异常。此异常也是模型类的属性
为防止错误停止代码执行,您可以将其包装在try / except:
中try:
context['member'] = Member.objects.get(user=self.request.user, uni=self.object)
except Member.DoesNotExist:
context['member'] = None