Да, вы должны использовать две try
- except
области. На самом деле лучше , а не писать длинные try
- except
области видимости, поскольку тогда уже неясно, что вызывает исключение. Таким образом, вы можете реализовать это как:
try:
context['data'] = ProfileData.objects.get( user=user)
except ProfileData.DoesNotExist:
context['data']= None
context['userdata'] = User.objects.get( username=user)
context['creationdata'] = UserCreation.objects.get( user=user)
try:
context['friends'] = Friends.objects.get( user=self.request.user,added=user)
except Friends.DoesNotExist:
context['friends'] = None
context['sorted'] = sorted(
chain(AddStatus.objects.filter(user=user),
ImageLib.objects.filter(user=user)),
key=lambda instance: instance.date, reverse=True
)
В случае, если наличие множественных ProfileData
с и т. Д. Не является проблемой, вместо этого можно использовать .first()
, который будет возвращать None
, если нет строки для возврата:
context['data'] = ProfileData.objects.filter(user=user).first()
context['userdata'] = User.objects.get(username=user)
context['creationdata'] = UserCreation.objects.get(user=user)
context['friends'] = Friends.objects.filter( user=self.request.user,added=user).first()
context['sorted'] = sorted(
chain(AddStatus.objects.filter(user=user),
ImageLib.objects.filter(user=user)),
key=lambda instance: instance.date, reverse=True
)