0

I have some groups. User can be member of this group. When the user, is viewing group profile, if he is member, he should see information about himself. That is how it works:

    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

But, if he is not member of this group, it must throw this error:

    Exception Type: DoesNotExist
    Exception Value: Member matching query does not exist.

is it possible to get this context without get_or_create?

LoukasPap
  • 1,244
  • 1
  • 8
  • 17
Harkonnen
  • 149
  • 3
  • 11

1 Answers1

0

From the Django docs on get():

get() raises a DoesNotExist exception if an object wasn’t found for the given parameters. This exception is also an attribute of the model class

To prevent the error from stopping your code execution, you can wrap it in a try/except:

try:
    context['member'] = Member.objects.get(user=self.request.user, uni=self.object)
except Member.DoesNotExist:
    context['member'] = None

See also: Get an object from the DB, or None if nothing matches

Community
  • 1
  • 1
pcoronel
  • 3,833
  • 22
  • 25